Imported Upstream version 0.1.10
authorMatteo F. Vescovi <mfv.debian@gmail.com>
Tue, 3 Apr 2012 08:49:12 +0000 (10:49 +0200)
committerMatteo F. Vescovi <mfv.debian@gmail.com>
Tue, 3 Apr 2012 08:49:12 +0000 (10:49 +0200)
21 files changed:
ChangeLog
ChangeLog.pre-0-1 [deleted file]
INSTALL
Makefile.am
Makefile.in
NEWS
README
babl/babl-conversion.c
babl/babl-version.h
babl/base/model-rgb.c
babl/base/util.h
configure
configure.ac
extensions/Makefile.am
extensions/Makefile.in
extensions/fast-float.c [new file with mode: 0644]
extensions/float.c [new file with mode: 0644]
extensions/gegl-fixups.c
extensions/gggl-lies.c
extensions/gggl.c
extensions/sse-fixups.c

index cd1fe8340bf67ccd0e804925cb25f9309beb7652..998ca224c0ead473944d1ab9cbb2becab9ea3831 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,140 @@
+commit 01617bfafbd266ebb435355309505843686bfac4
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sun Apr 1 19:41:47 2012 +0100
+
+    extensions: quadruple precision of LUT based floatfuncs
+
+    (without increasing the size of the lookup tables, with neglible
+    performance cost)
+
+ extensions/fast-float.c |   36 ++++++++++++++++++++++--------------
+ 1 files changed, 22 insertions(+), 14 deletions(-)
+
+commit c94d8493bcffb8acd499a8a993545c95f865f5e3
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sun Apr 1 15:08:13 2012 +0100
+
+    fast-float: reduce overhead of saturating LUT
+
+ extensions/fast-float.c |    7 +------
+ 1 files changed, 1 insertions(+), 6 deletions(-)
+
+commit 9964f870b1e9599ccd6091c3869ad14ca030ff98
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sun Apr 1 15:03:10 2012 +0100
+
+    extensions/fast-float: reduce precision
+
+    Reduce sizes of lookup tables by an order of magnitude, doubling
+    the run-time
+    performance.
+
+ extensions/fast-float.c |    9 +++++++--
+ 1 files changed, 7 insertions(+), 2 deletions(-)
+
+commit df7b656e4e6b0cfe03713fa71c2ab4c3055aa327
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sun Apr 1 03:08:53 2012 +0100
+
+    extensions: add lut based gamma for float
+
+ extensions/Makefile.am  |    3 +-
+ extensions/fast-float.c |  463
+ +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 465 insertions(+), 1 deletions(-)
+
+commit efcbbf180060385edfd9922e7de3ffc8895d0747
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sat Mar 31 17:08:16 2012 +0100
+
+    babl: reduce number of pixels tested when profiling to 128
+
+ babl/babl-conversion.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 3a88e9d917f96935c1abaac011b52bdc3e2d85b8
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sat Mar 31 15:34:31 2012 +0100
+
+    extensions: get rid of some of the conversions with the highest errors
+
+ babl/babl-conversion.c   |    2 +-
+ extensions/gegl-fixups.c |   72 ------------
+ extensions/gggl-lies.c   |  283
+ ----------------------------------------------
+ 3 files changed, 1 insertions(+), 356 deletions(-)
+
+commit 4f8c43e0ee4c5f9ecb453cc5a4bf27d8a11202c1
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sat Mar 31 15:06:52 2012 +0100
+
+    extensions: remove optmized powf, use the fully correct optimization
+    from base
+
+ extensions/float.c |  124
+ ++++++---------------------------------------------
+ 1 files changed, 15 insertions(+), 109 deletions(-)
+
+commit 1f5b281382b8511481bdd1ac0baef417a32779fb
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sat Mar 31 14:58:49 2012 +0100
+
+    extensions: add an extension with some float optimizations
+
+    Alos improve some alpha unpremultiplications in other extensions.
+
+ extensions/Makefile.am   |    4 +
+ extensions/float.c       |  324
+ ++++++++++++++++++++++++++++++++++++++++++++++
+ extensions/gegl-fixups.c |    6 +-
+ extensions/gggl.c        |    3 +-
+ 4 files changed, 333 insertions(+), 4 deletions(-)
+
+commit f8d49962299cba7dc719c63c78b0dbd9b65678a5
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sat Mar 31 14:58:16 2012 +0100
+
+    base/util.h change define used in include guards
+
+ babl/base/util.h |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit fe553b82d2bf2ce5a76a571cedb4b1e0389cfc99
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sat Mar 31 03:47:06 2012 +0100
+
+    use optimized powf for x^(1.0/2.4)
+
+ babl/base/util.h |   17 +++++++++++++++++
+ 1 files changed, 17 insertions(+), 0 deletions(-)
+
+commit d36119a4f79dd174fd762bfa6761cb0743b6753f
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sat Mar 31 03:44:45 2012 +0100
+
+    reorder loops of reference premul
+
+ babl/base/model-rgb.c |   18 +++++++++---------
+ 1 files changed, 9 insertions(+), 9 deletions(-)
+
+commit 8f2e1e3c18299b0f522727d894ab53d7c92304ed
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Sat Mar 31 02:50:43 2012 +0100
+
+    use sse conversions also for gamma corrected data
+
+ extensions/sse-fixups.c |   30 ++++++++++++++++++++++++++++++
+ 1 files changed, 30 insertions(+), 0 deletions(-)
+
+commit a3c5cb397632dc92cec8bde020173720f18f0210
+Author: Øyvind Kolås <pippin@gimp.org>
+Date:   Fri Mar 30 00:37:00 2012 +0100
+
+    post release version bump to 0.1.9
+
+ configure.ac |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
 commit 21d823b676c7785bf555f913d5cc04ff0fca3e8b
 Author: Øyvind Kolås <pippin@gimp.org>
 Date:   Fri Mar 30 00:33:09 2012 +0100
diff --git a/ChangeLog.pre-0-1 b/ChangeLog.pre-0-1
deleted file mode 100644 (file)
index a81c443..0000000
+++ /dev/null
@@ -1,3345 +0,0 @@
-=========================== 0.1.0 released =============================
-
-2009-05-20  Martin Nordholts  <martinn@src.gnome.org>
-
-       * configure.ac: Bump version to 0.1.0 and make sure the link name
-       remains `babl-0.0'.
-
-2009-05-20  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * docs/Makefile.am: Also add .libs directories to the BABL_PATHs
-       so that e.g. the BablFishPath introspection chart is properly
-       generated when doing a build, at least on Linux.
-
-2009-05-20  Martin Nordholts  <martinn@src.gnome.org>
-
-       * docs/index-static.html.in: Convert SVN references to git
-
-2009-05-19  Martin Nordholts  <martinn@src.gnome.org>
-
-       Update for 0.1.0 release.
-
-       * AUTHORS
-       * NEWS
-
-2009-05-16  Hubert Figuiere  <hub@figuiere.net>
-
-       Add extern "C" to the header for C++ friendliness.
-
-       * babl/babl.h
-
-2009-04-04  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Bug 568576 – [PATCH] undefined operation fix
-
-       Patch from Stanislav Brabec
-
-       * babl/babl-fish-stats.c
-       * tests/babl_fish_path_fitness.c
-
-2009-04-04  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * AUTHORS: Update for 0.1.0 release.
-
-2009-04-04  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * extensions/Makefile.am: extensions: util.h is part of the
-       source. make distcheck passes now.
-
-2009-04-04  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/Makefile.am: Add forgotten header files that needs to be
-       distributed with a release.
-
-2009-04-04  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * Makefile.am: We don't have a COPYING.LESSER anymore
-
-2009-04-03  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * NEWS: Updated for 0.1.0
-
-2009-03-31  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-internal.h: Patch from Gary V. Vaughan. Avoid the need
-       for define __func__ "unknown" on some vendor compilers
-
-2009-03-31  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * configure.ac: Patch from Gary V. Vaughan. Don't try to pass gcc
-       flags to vendor compilers
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Patch from Gary V. Vaughan. Rewrite xml-insert.sh in portable
-       bourne-shell
-
-       * docs/Makefile.am
-       * docs/tools/xml_insert.sh
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Patch from Gary V. Vaughan. Don't use depecrated features or
-       reduntant declarations in Makefile.am
-
-       * babl/Makefile.am
-       * babl/base/Makefile.am
-       * docs/Makefile.am
-       * tests/Makefile.am
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Patch from Gary V. Vaughan. Support hpux use of shl load/unload
-       and dsos with .sl suffixes
-
-       * babl/babl-extension.c
-       * configure.ac
-       * extensions/Makefile.am
-       * tests/Makefile.am
-
-2008-03-27  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * configure.ac: 
-       * docs/graphics/Makefile.am: Applied patch from Matteo 'Peach'
-       Pescarin which makes build use rsvg binary instead of inkscape
-       to create pngs. Fixes bug 571516.
-
-2009-03-26  Manish Singh  <yosh@gimp.org>
-
-       * configure.ac: BABL_VARIADIC_MACROS needs to be called before
-       the libtool stuff (which implicitly calls AC_PROG_CXX)
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Patch from Gary V. Vaughan. NULL-statements caused by trailing
-       commas are non-portable.
-
-       * babl/base/type-u16.c
-       * babl/base/type-u32.c
-       * babl/base/type-u8.c
-       * extensions/CIE-Lab.c
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Apply patch from Gary V. Vaughan that adds configure time checks
-       for variadic macros and adapts the definitions of such macros
-       in-code accordingly so that babl can be compiled on more
-       platforms.
-
-       * acinclude.m4
-       * babl/babl-internal.h
-       * configure.ac
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-fish.c: Patch from Gary V. Vaughan. Some vendor
-       compilers can't compile non-constant elements of compound struct
-       initializers
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Patch from Gary V. Vaughan. Some vendor C compilers choke on C++
-       comments.
-
-       * babl/babl-fish-path.c
-       * babl/babl-fish-stats.c
-       * babl/base/model-rgb.c
-       * babl/base/rgb-constants.h
-       * tests/babl_fish_path_fitness.c
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-cpuaccel.h: Patch from Gary V. Vaughan. enum values
-       must be less than INT_MAX (sign bit is illegal)
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-ids.h: Patch from Gary V. Vaughan. Remove trailing
-       comma in enum declaration.
-
-2009-03-25  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Apply patch from Gary V. Vaughan that includes config.h in some
-       files that missed it.
-
-       * babl/base/conversions-type.c
-       * babl/base/model-cmyk.c
-
-2009-02-24  Sven Neumann  <sven@gimp.org>
-
-       * */*.c: based on a patch from Gary V. Vaughan, include "config.h"
-       before any other header file from all .c files.
-
-       * babl/babl-internal.h
-       * extensions/util.h: instead of including config.h from here, bail
-       out if it wasn't included beforehand.
-
-2009-02-20  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h: Include headers in babl.h as system headers
-
-2009-01-26  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl.h
-       * babl/babl-format.c: renamed babl_format_get_num_of_components()
-       to babl_format_get_n_components().
-       (babl_format_has_alpha): changed accordingly.
-
-2009-01-24  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Do a complete overhaul of the babl API.
-
-       * babl/babl.h: Instead of including subsystem headers, declare the
-       functions part of the API directly in the header. The public
-       types, macros and the version header is still pulled in as
-       includes but with inclusion guards that prevent them from being
-       included separately by clients. Notable things removed from the
-       API is internal class functions and the class instance structs.
-
-       (babl_format_has_alpha)
-       (babl_format_get_bytes_per_pixel)
-       (babl_format_get_num_of_components)
-       (babl_format_get_type): New getters to allow the Babl union to
-       become opaque for clients.
-
-       * babl/babl-types.h: New file with public types. Currently only
-       the opaque Babl union and the linear and planar conversion
-       function prototypes (which are not used in the API due to the use
-       of varags but still part of the API for reference) are there. Make
-       sure it's only included indirectly through babl.h.
-
-       * babl/babl-macros.h
-       * babl/babl-version.h.in: Make sure these are not included
-       directly, only indirectly through babl.h.
-
-       * babl/babl-main.h: Removed, function declarations are in babl.h
-       now.
-
-       * babl/babl-internal.h: Include the headers we now consider
-       internal, mostly the different class headers.
-
-       * babl/babl-class.h: The "named class" function declarations are
-       now in the public header so move them away from this internal
-       header.
-
-       * babl/babl-image.h
-       * babl/babl-format.h
-       * babl/babl-fish.h
-       * babl/babl-extension.h
-       * babl/babl-conversion.h
-       * babl/babl-component.h
-       * babl/babl-classes.h
-       * babl/babl-introspect.h
-       * babl/babl-sampling.h
-       * babl/babl-model.h
-       * babl/babl-type.h: Adapt to above changes, move relevant things to babl.h
-
-       * babl/base/formats.c
-       * babl/base/model-gray.c
-       * babl/base/model-rgb.c
-       * babl/base/model-ycbcr.c
-       * babl/base/type-float.c: Explicitly #include "babl-classes.h".
-
-       * babl/babl-internal.c: s/babl_name/babl_get_name/
-
-       * babl/babl-format.c
-       (babl_format_has_alpha)
-       (babl_format_get_bytes_per_pixel)
-       (babl_format_get_num_of_components)
-       (babl_format_get_type): Implement these.
-
-       * babl/Makefile.am: Don't install the now internal headers and
-       add, remove and install the other headers according to above
-       changes.
-
-2009-01-18  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Since babl_foo_from_id() will not be part of the public API we can
-       revert to having the short variant babl_foo() instead of
-       babl_foo_from_name().
-
-       * babl/babl-class.h
-       * babl/babl-component.h
-       * babl/babl-conversion.c
-       * babl/babl-conversion.h
-       * babl/babl-extension.h
-       * babl/babl-fish-path.c
-       * babl/babl-fish.c
-       * babl/babl-format.c
-       * babl/babl-format.h
-       * babl/babl-image.c
-       * babl/babl-internal.h
-       * babl/babl-model.c
-       * babl/babl-model.h
-       * babl/babl-type.c
-       * babl/babl-type.h
-       * extensions/CIE-Lab.c
-       * extensions/frequency.c
-       * extensions/gegl-fixups.c
-       * extensions/gggl-lies.c
-       * extensions/gggl.c
-       * extensions/gimp-8bit.c
-       * extensions/naive-CMYK.c
-       * extensions/sse-fixups.c
-       * tests/grayscale_to_rgb.c
-       * tests/rgb_to_bgr.c
-       * tests/rgb_to_ycbcr.c
-
-2009-01-18  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Add include guards.
-
-       * babl/babl-component.h
-       * babl/babl-conversion.h
-       * babl/babl-extension.h
-       * babl/babl-fish.h
-       * babl/babl-format.h
-       * babl/babl-image.h
-       * babl/babl-model.h
-       * babl/babl-sampling.h
-       * babl/babl-type.h
-
-2009-01-18  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-db.h: Namespace the include guard.
-
-2009-01-18  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Do a s/babl_destroy/babl_exit since 'destroy' is better paired
-       with a 'create' and other libraries also use the 'init'/'exit'
-       pair, including GEGL. Keep a define for babl_destroy unless
-       BABL_DISABLE_DEPRECATED is defined.
-
-       * babl/babl-main.h
-       * babl/babl.c
-       * tests/babl-html-dump.c
-       * tests/babl_class_name.c
-       * tests/babl_fish_path_dhtml.c
-       * tests/babl_fish_path_fitness.c
-       * tests/conversions.c
-       * tests/formats.c
-       * tests/grayscale_to_rgb.c
-       * tests/introspect.c
-       * tests/models.c
-       * tests/nop.c
-       * tests/rgb_to_bgr.c
-       * tests/rgb_to_ycbcr.c
-       * tests/sanity.c
-       * tests/srgb_to_lab_u8.c
-       * tests/types.c
-
-2009-01-18  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-classes.h: New file collecting the type constants,
-       includes and the union for the babl classes. When adding a new
-       class this is the only installed header file that requires
-       modification.
-
-       * babl/babl-class.h: Move the class type enums to the new file.
-
-       * babl/babl.h: Include babl-classes.h instead of each class on its
-       own, and move the Babl union to the new file.
-
-       * babl/Makefile.am: Add the new file.
-
-2009-01-18  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl-component.h
-       * babl/babl-conversion.h
-       * babl/babl-extension.h
-       * babl/babl-format.h
-       * babl/babl-model.h
-       * babl/babl-type.h: allow to disable the defines that were added
-       for backward compatibility by definining BABL_DISABLE_DEPRECATED.
-
-       * babl/babl-image.h: removed trailing whitespace.
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Add #define babl_foo babl_foo_from_name macros, that should fix
-       most builds that broke due to the below refactoring.
-
-       * babl/babl-component.h
-       * babl/babl-conversion.h
-       * babl/babl-extension.h
-       * babl/babl-format.h
-       * babl/babl-model.h
-       * babl/babl-type.h
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       s/babl_image/babl_image_new/
-
-       * babl/babl-fish-reference.c
-       * babl/babl-image.c
-       * babl/babl-image.h
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       s/babl_foo_init/babl_foo_class_init/
-       s/babl_foo_destroy/babl_foo_class_destroy/
-       s/babl_foo_each/babl_foo_class_for_each/
-       s/babl_foo/babl_foo_from_name/
-       s/babl_foo_id/babl_foo_from_id/
-
-       * babl/babl-class.h
-       * babl/babl-conversion.c
-       * babl/babl-core.c
-       * babl/babl-fish-path.c
-       * babl/babl-fish-reference.c
-       * babl/babl-fish-stats.c
-       * babl/babl-fish.c
-       * babl/babl-format.c
-       * babl/babl-image.c
-       * babl/babl-internal.h
-       * babl/babl-introspect.c
-       * babl/babl-model.c
-       * babl/babl-sampling.c
-       * babl/babl-sanity.c
-       * babl/babl-type.c
-       * babl/babl.c
-       * babl/base/formats.c
-       * babl/base/model-gray.c
-       * babl/base/model-rgb.c
-       * babl/base/model-ycbcr.c
-       * babl/base/type-float.c
-       * babl/base/type-u16.c
-       * babl/base/type-u32.c
-       * babl/base/type-u8.c
-       * extensions/CIE-Lab.c
-       * extensions/frequency.c
-       * extensions/gegl-fixups.c
-       * extensions/gggl-lies.c
-       * extensions/gggl.c
-       * extensions/gimp-8bit.c
-       * extensions/naive-CMYK.c
-       * extensions/sse-fixups.c
-       * tests/babl-html-dump.c
-       * tests/babl_fish_path_fitness.c
-       * tests/conversions.c
-       * tests/formats.c
-       * tests/grayscale_to_rgb.c
-       * tests/models.c
-       * tests/rgb_to_bgr.c
-       * tests/rgb_to_ycbcr.c
-       * tests/types.c
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-class.h: Remove babl_name() and babl_introspect()
-       which slipped in here.
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h: Don't #include <stdlib.h>
-
-       * babl/base/formats.c
-       * babl/base/model-gray.c
-       * babl/base/model-rgb.c
-       * extensions/gegl-fixups.c
-       * extensions/sse-fixups.c: #include <stdlib.h>
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Make babl.h look clean.
-
-       * babl/babl-introspect.h: New installed header for babl_name() and
-       babl_introspect().
-
-       * babl/babl.h: Include it.
-
-       * babl/Makefile.am: Add it.
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-internal.h: Formating.
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-class.h: New installed header file containing class
-       and typesystem definitions and types.
-
-       * babl/babl.h: Include it.
-
-       * babl/Makefile.am: Add it.
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h: Move up forward declaration of BablList.
-
-       * babl/babl-list.h: Completely rely on that declaration.
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h: Don't have BABL_ALPHA_THRESHOLD public yet.
-
-       * babl/base/util.h: Put it here for now instead.
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Instead of having BABL_CLASS() plus variants and making the macros
-       expand to different things depending on if they are used in a
-       header or a .c file, have two versions: BABL_CLASS_DECLARE() and
-       BABL_CLASS_IMPLEMENT(). This enables further refactorisation of
-       the babl.h header.
-
-       * babl/babl.h: Do the name changes and remove the unpleasant
-       #undefs at the bottom.
-
-       * babl/babl-internal.h: Do the name changes.
-
-       * babl/babl-component.[ch]
-       * babl/babl-conversion.[ch]
-       * babl/babl-extension.[ch]
-       * babl/babl-fish.[ch]
-       * babl/babl-format.[ch]
-       * babl/babl-image.h
-       * babl/babl-model.[ch]
-       * babl/babl-sampling.h
-       * babl/babl-type.[ch]: Adjust to changes.
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       Don't redeclare functions declared with the BABL_CLASS() or
-       BABL_NAMED_CLASS() macros.
-
-       * babl/babl-component.h
-       * babl/babl-conversion.h
-       * babl/babl-extension.h
-       * babl/babl-fish.h
-       * babl/babl-format.h
-       * babl/babl-image.h
-       * babl/babl-model.h
-       * babl/babl-sampling.h
-       * babl/babl-type.h
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-main.h: New installed file with babl_init() and
-       babl_destroy() declarations.
-
-       * babl/babl.h: Include it.
-
-       * babl/Makefile.am: Add it.
-
-2009-01-17  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-macros.h: New installed header file that contains
-       portability macros.
-
-       * babl/babl.h: Include it and don't define portability macros
-       here.
-
-       * babl/Makefile.am: Add it.
-
-2009-01-15  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h: Make BablClassType an int again, it doesn't make
-       sense as an enum as the set of class types is not a natural
-       predefined set.
-
-2009-01-14  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h: Make BablClassType an enum instead of an unsigned
-       int contaning enum values.
-
-2009-01-14  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h: Use a lowercase 'a' in 0xbab100.
-
-2009-01-14  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h: Don't document forward declarations and move them
-       down a bit to make them less eminent.
-
-2009-01-14  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h
-       * babl/babl-internal.h: Remove BABL_HARD_MAX_PATH_LENGTH from
-       here, it's only for internal use.
-
-       * babl/babl-fish-path.c: #define BABL_HARD_MAX_PATH_LENGTH locally
-       here.
-
-2009-01-14  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h (BABL_ALPHA_THRESHOLD): Instead of an arbitrary
-       threshold, use one hundredth of the channel intensity resolution
-       when using 16 bit integers i.e. 0.01 / (2^16 - 1).
-
-2008-12-08  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-internal.h (babl_assert): Don't just eek when an
-       assertion fails, also say exactly what failed.
-
-2008-11-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish-stats.c: (legal_error), (each_conv): show in red the
-       conversions that are worse than the current BABL_TOLERANCE instead of
-       the earlier arbitrary 0.01.
-
-2008-11-16  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-fish-path.c: Use the default babl tolerance level if
-       BABL_TOLERANCE is the empty string so that we don't get a
-       tolerance level of 0.0 in that case.
-
-2008-11-16  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl.h: Add #define BABL_ALPHA_THRESHOLD which is the alpha
-       threshold used in the reference implementation for
-       un-pre-multiplication of color data.
-
-       * babl/base/model-rgb.c
-       * babl/base/model-gray.c
-       * extensions/gegl-fixups.c: Use the define, a consistent alpha
-       threshold improves accurucy of conversions.
-
-2008-11-16  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * extensions/gegl-fixups.c (conv_rgbAF_sdl32)
-       * babl/base/model-gray.c (premultiplied_to_non_premultiplied):
-       Make un-pre-multiplication with close-to-zero alpha values result
-       in complete black instead of a bit brigher than black.
-
-2008-11-08  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gegl-fixups.c: (conv_rgbAF_lrgba8): use the lookup tables
-       to speed up the conversion 8still error of 0.002677 though).
-
-2008-11-06  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gegl-fixups.c: (conv_rgbAF_rgbaF),
-       (conv_rgbAF_lrgba8): make all components 0.0 when alpha < 0.00001.
-
-2008-11-04  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gegl-fixups.c: (conv_rgbAF_rgbaF),
-       (conv_rgbAF_lrgba8), (init): added some more missing conversions.
-
-2008-11-04  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gegl-fixups.c: (conv_rgbaF_rgbAF), (init): added missing,
-       needed conversion.
-
-2008-10-01  Øyvind Kolås  <pippin@gimp.org>
-
-       * COPYING.LESSER: renamed to ..
-       * COPYING: 
-
-2008-07-09  Sven Neumann  <sven@gimp.org>
-
-       * babl/base/Makefile.am: `:='-style assignments are not portable
-
-2008-07-04  Sven Neumann  <sven@gimp.org>
-
-       * extensions/Makefile.am: also use AM_CPPFLAGS and CPPFLAGS for
-       building sse-fixups.
-
-2008-07-01  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-cpuaccel.c: added typedef size_t gsize to the set of
-       gtypes lifted from glib. spotted by Marianne Gagnon.
-
-2008-07-01  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/Makefile.am: applied patch from dmacks at netspace.org
-       cleaning up some of the build system.
-
-2008-06-28  Zhang Junbo  <zhangjb@svn.gnome.org>
-
-       * extensions/frequency.c: changed RrRiG... back to RrGrBrArRiGiBiAi.
-
-2008-06-27  Zhang Junbo  <zhangjb@svn.gnome.org>
-
-       * extensions/frequency.c: some work on frequency_to_rgba.
-
-2008-06-27  Zhang Junbo  <zhangjb@svn.gnome.org>
-
-       * extensions/frequency.c: implemented frequency_to_rgba.
-
-2008-06-22  Zhang Junbo  <zhangjb@svn.gnome.org>
-
-       * extensions/frequency.c: changed RrGrBr... into RrRiGrGiBrBiArAi.
-
-2008-06-22  Zhang Junbo  <zhangjb@svn.gnome.org>
-
-       * extensions/frequency.c: added the format "frequency double".
-
-2008-06-16  Sam Hocevar  <sam@zoy.org>
-
-       * Makefile.am: ensure that the "w3m must be available" message is
-       properly displayed: dist-hook is only called after builddir is filled.
-
-2008-06-13  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/frequency.c: added dummy model "frequency" and dummy
-       format "frequency float" to be used purely for creating, storing,
-       accessing but not converting to and from normal tristimulus spaces.
-       can be used by GeglBuffer to create frequency domain buffers that
-       are processed in a similar manner to normal buffers.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: post release increment of version to 0.0.23
-
-=========================== 0.0.22 released =============================
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: incremented version.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: moved the babl directory overview here
-       from the GEGL site.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: fixed indentation and misplaced ' spotted
-       by Jan Heller.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: moved the BABL_TOLERANCE documentation
-       paragraph in under Environment heading.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: removed markup mistake that introduced
-       horizontal scrolling in gecko.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish-path.c: (legal_error): s/BABL_TOLERANCE/
-       * docs/index-static.html.in: s/BABL_ACCURACY/BABL_TOLERANCE/
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish-path.c: (legal_error): s/BABL_ERROR/BABL_ACCURACY/
-       * docs/index-static.html.in: s/BABL_ERROR/BABL_ACCURACY/
-
-       * AUTHORS: added a missing space.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * NEWS: added a html comment shortening the news shown.
-       * docs/index-static.html.in: assed link to changelog in svn after
-       news. Updated urls with s/viewcvs/viewvc/.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * Makefile.am: added TODO
-       * docs/index-static.html.in: moved TODO list from here
-       * TODO: to here, also edited it a bit.
-       * docs/Makefile.am: include TODO in result.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: reindented code, documented BABL_ERROR.
-
-2008-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * AUTHORS: updated.
-       * NEWS: updated.
-       * docs/index-static.html.in: improved introduction and feature list.
-
-2008-06-12  Jan Heller  <jheller@svn.gnome.org>
-
-       * extensions/sse-fixups.c (conv_rgbaF_linear_rgb8_linear),
-       (conv_rgbaF_linear_rgba8_linear): Added fallback non-SSE routine 
-       if the input buffer is not aligned to 16 bytes.
-
-2008-06-05  Jan Heller  <jheller@svn.gnome.org>
-
-       * AUTHORS: Updated contact info.
-
-2008-06-03  Jan Heller  <jheller@svn.gnome.org>
-
-       * INSTALL.in: Updated download link.
-
-2008-06-03  Jan Heller  <jheller@svn.gnome.org>
-
-       babl_get_version () moved into separate source file.
-
-       * babl/Makefile.am: Added babl-version.c.
-       * babl/babl-version.c (babl_get_version): Implemented.
-       * babl/babl-version.h.in: Added babl_get_version () declaration.
-       * babl/babl.c (babl_destroy):  Removed babl_get_version ().
-       * babl/babl.h: Removed babl_get_version () declaration.
-
-2008-06-03  Jan Heller  <jheller@svn.gnome.org>
-
-       * babl/babl-version.h.in: Added.
-
-2008-06-03  Jan Heller  <jheller@svn.gnome.org>
-
-       Added babl_get_version () to the public API.
-
-       * babl/Makefile.am: Added babl-version.h to library_include_HEADERS.
-       * babl/babl-version.h.in: Added macros to expand to babl version
-       information.
-       * babl/babl.c (babl_get_version): Implemented.
-       * babl/babl.h: Include babl-version.h, declare babl_get_version ().
-       * configure.ac: Added babl-version.h to AC_CONFIG_FILES.
-
-2008-05-23  Jan Heller  <jheller@svn.gnome.org>
-
-       * extensions/sse-fixups.c (init): Fixed conditionally compiled code.
-
-2008-05-23  Jan Heller  <jheller@svn.gnome.org>
-
-       Added support for CPU acceleration, RGBA float -> RGB u8 and 
-       RGBA float -> RGBA u8 SSE accelerated conversions.
-
-       * babl/Makefile.am: Added babl-cpuaccel.[ch].
-       * babl/babl-cpuaccel.h:
-       * babl/babl-cpuaccel.c (babl_cpu_accel_get_support),
-       (babl_cpu_accel_set_use), (arch_get_vendor), (arch_accel_intel),
-       (arch_accel_amd), (arch_accel_centaur), (arch_accel_cyrix),
-       (sigill_handler), (arch_accel_sse_os_support), (arch_accel),
-       (cpu_accel): Runtime CPU detection code. Ported from GIMP.
-       * babl/babl-internal.h: Include babl-cpuaccel.h.
-       * babl/babl-memory.c (babl_malloc): Make babl_malloc align memory to
-       BABL_ALIGN==16 boundaries.
-       * babl/babl.c (babl_init): Enabled CPU acceleration.
-       * configure.ac: Added compile time MMX/SSE/AltiVec detection. Ported
-       from GIMP.
-       * extensions/Makefile.am: Added SSE_EXTRA_CFLAGS for sse-fixups.c
-       compilation.
-       * extensions/sse-fixups.c (conv_rgbaF_linear_rgb8_linear),
-       (conv_rgbaF_linear_rgba8_linear), (init): Added RGBA float -> RGB u8
-       and RGBA float -> RGBA u8 SSE accelerated conversions.
-
-2008-05-22  Jan Heller  <jheller@svn.gnome.org>
-
-       * extensions/util.h: changed fallback macro to have the
-       same return type as rint().
-
-2008-05-21  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl-internal.h (rint): changed fallback macro to have the
-       same return type as rint().
-
-2008-05-21  Jan Heller  <jheller@svn.gnome.org>
-
-       * babl/babl-internal.h:
-       * babl/base/type-u16.c:
-       * babl/base/type-u32.c:
-       * babl/base/type-u8.c:
-       * extensions/CIE-Lab.c:
-       * extensions/gegl-fixups.c:
-       * extensions/gggl-lies.c:
-       * extensions/gggl.c:
-       * extensions/gimp-8bit.c:
-       * extensions/util.h: fallback to floor function when rint function
-       is not available.
-
-       * configure.ac: added check for rint function.
-
-2008-05-20  Jan Heller  <jheller@svn.gnome.org>
-
-       * extensions/gimp-8bit.c (conv_rgbaF_linear_rgb8_linear),
-       (conv_rgbaF_linear_rgba8_linear), (init): added naive versions
-       of respective conversions.
-
-2008-05-14  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl-format.c (format_new): initialize format.visited.
-
-       * babl/babl-format.h
-       * babl/babl-fish-path.c: formatting.
-
-2008-04-16  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl.h: formatting.
-
-2008-04-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl.h: split up into ...
-       Separate header files.
-
-       * babl/babl-component.h:
-       * babl/babl-conversion.h:
-       * babl/babl-extension.h:
-       * babl/babl-fish.h:
-       * babl/babl-format.h:
-       * babl/babl-image.h:
-       * babl/babl-model.h:
-       * babl/babl-sampling.h:
-       * babl/babl-type.h:
-
-       * babl/Makefile.am: install new headers.
-
-2008-04-15  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/Makefile.am: removed babl-classes.h
-       * babl/babl-classes.h: removed and mostly folded into ...
-       * babl/babl.h:  .. this file, which has been reorganized to contain
-       each separate class by itself.
-       * babl/babl-internal.h: simplified code renamed BABL_CLASS_TEMPLATE to
-       be just BABL_CLASS or BABL_CLASS_MINIMAL.
-
-       * babl/babl-fish.c: (babl_fish): do not accept varargs, use use
-       BABL_CLASS_MINIMAL.
-
-       * babl/babl-component.c:
-       * babl/babl-conversion.c:
-       * babl/babl-extension.c:
-       * babl/babl-format.c:
-       * babl/babl-model.c:
-       * babl/babl-type.c: use BABL_CLASS instead of BABL_CLASS_TEMPLATE
-
-       * babl/babl-hash-table.h:
-       * babl/babl-list.h:
-       * babl/babl-db.h: changed include warning since babl-classes doesn't
-       exist anymore.
-
-2008-04-15  Sven Neumann  <sven@gimp.org>
-
-       * extensions/util.h
-       * babl/*.[ch]: removed trailing whitespace.
-
-2008-04-15  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl-fish-path.c (init_path_instrumentation): this function
-       has no return value, declare it as void.
-
-2008-04-13  Øyvind Kolås  <pippin@gimp.org>
-
-       Applied patch from Jan Heller.
-
-       * babl/babl-fish-path.c: (get_conversion_path), (babl_fish_path),
-       (test_create), (init_path_instrumentation), 
-       (destroy_path_instrumentation), (get_path_instrumentation): Improved
-       fish path instrumentation during the search for a new one to optimize
-       for speed. Added logic to disallow creation of a fish path that is
-       actually slower than appropriate reference fish.
-
-       * babl/babl-util.[ch]: (babl_process_cost): New function for unified
-       timing formula for babl processings.
-
-       * babl/babl-conversion.c: (babl_conversion_error): Make use of the
-       new babl_process_cost function.
-
-       * extensions/gimp-8bit.c: Added a function declaration to prevent
-       compiler warning.
-
-2008-04-08  Øyvind Kolås  <pippin@gimp.org>
-
-       Applied patch from Jan Heller that improves logic of go_fishing code
-       in babl-fish.c. The current code searches list of all fishes while
-       looking for suitable preexistent BABL_FISH_PATH instance. The new code
-       only searches relevant part of database's hash table. Further, the
-       current code searches for fish path every time such a babl fish is
-       requested, even though the same fish path has been requested before
-       and not found. The new code creates dummy BABL_FISH instance with
-       appropriate source/destination formats and inserts it into the fish
-       database to indicate that fish path has been searched for and not
-       found. 
-
-       * babl/babl-fish.c: (find_fish_path), (find_memcpy_fish),
-       (babl_fish_get_id), (babl_fish):
-       * babl/babl-fish-path.c: (babl_fish_path):
-       * babl/babl-fish-reference.c: (babl_fish_reference):
-       * babl/babl-fish-simple.c: (babl_fish_simple):
-       * babl/babl-internal.h:
-
-2008-04-06  Sven Neumann  <sven@gimp.org>
-
-       * acinclude.m4: new file defining BABL_DETECT_CFLAGS() macro.
-
-       * configure.ac: set CFLAGS to get some extra compiler warnings.
-
-       * babl/babl-fish-stats.c (conversions): fixed old-style function
-       definition.
-
-       * Makefile.am: formatting.
-
-2008-04-02  Mukund Sivaraman <muks@mukund.org>
-
-       Sparse fixes.
-
-       * babl/babl-internal.h: fflush() takes pointer.
-
-       * babl/babl-conversion.c: Don't mix code and declarations.
-
-       * babl/babl-fish-reference.c: Fixed array assignment.
-
-2008-04-03  Øyvind Kolås  <pippin@gimp.org>
-
-       Applied patch from Jan Heller that ports BablFishPath class to the new
-       list API and the list API is a bit expanded. Further, the algorithm
-       for generating the shortest conversion path is reformulated to be more
-       readable and comprehensible and thoroughly commented. The algorithm
-       for processing the conversion paths is reformulated and commented. 
-       Also contains minor readability cleanups and speedups.
-
-       * babl/babl-classes.h:
-       * babl/babl-conversion.c:
-       * babl/babl-db.c:
-       * babl/babl-fish-path.c: 
-       * babl/babl-fish-stats.c:
-       * babl/babl-fish.c:
-       * babl/babl-list.c:
-       * babl/babl-list.h:
-       * tests/babl_fish_path_fitness.c:
-
-2008-04-01  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h:
-       * babl/babl-conversion.c:
-       * babl/babl-db.c:
-       * babl/babl-fish-path.c:
-       * babl/babl-fish.c:
-       * babl/babl-format.c: 
-       * babl/babl-internal.h:
-       * babl/babl-introspect.c:
-       * babl/babl-list.c:
-       * babl/babl-list.h:
-       * babl/babl-model.c:
-       * babl/babl-sampling.c:
-       * babl/babl-sanity.c:
-       * babl/babl-type.c:
-       * babl/babl-util.[ch]: applied patch from Jan Heller that improves
-       readability by using the newly introduced BablList structure.
-
-2008-03-31  Sven Neumann  <sven@gimp.org>
-
-       * AUTHORS: added Jan Heller and obfuscated the email addresses.
-
-2008-03-29  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl-component.c
-       * babl/babl-conversion.c
-       * babl/babl-db.c
-       * babl/babl-extension.c
-       * babl/babl-fish-path.c
-       * babl/babl-fish-reference.c
-       * babl/babl-fish-simple.c
-       * babl/babl-format.c
-       * babl/babl-model.c
-       * babl/babl-type.c: applied patch from Jan Heller that changes the
-       code to test for a pre-existent instance of a babl class in the
-       database before creating a new one.
-
-2008-03-24  Tor Lillqvist  <tml@novell.com>
-
-       * babl/babl-type.c: Make the "test" array static.
-
-2008-03-23  Martin Nordholts  <martinn@svn.gnome.org>
-
-       * babl/babl-memory.[ch]: typedef:ed BABL free and malloc function
-       pointers.
-
-2008-03-22  Sven Neumann  <sven@gimp.org>
-
-       Applied patch from Jan Heller that introduces list and hash table
-       functionality and changes the babl database to use coalesced
-       hashing (bug #523507). This considerably improves BABL
-       performance.
-
-       * babl/Makefile.am
-       * babl/babl-list.[ch]
-       * babl/babl-hash-table.[ch]: new files providing list and hash
-       table functionality.
-
-       * babl/babl-internal.h: include the new header files.
-
-       * babl/babl-db.[ch]: use the new code.
-
-       * babl/babl-fish.c: changed accordingly.
-
-2008-03-16  Mukund Sivaraman <muks@mukund.org>
-
-       * babl/babl-extension.c: getenv() can return NULL.
-
-       * babl/babl-memory.c: Check for NULL in babl_strcat().  
-
-2008-03-16  Mukund Sivaraman <muks@mukund.org>
-
-       * babl/babl-image.c: Added missing va_end()s.
-
-2008-03-16  Mukund Sivaraman <muks@mukund.org>
-
-       * babl/babl-extension.c: Added missing dlclose()s.
-
-2008-03-02  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl.pc.in: do not add @DL_LIBS@ to link line of babl.
-
-2008-03-02  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/Makefile.am: applied patch from dmacks@netspace.org for
-       bug #519794.
-
-2008-03-02  Øyvind Kolås  <pippin@gimp.org>
-
-       Applied patch from dmacks@netspace.org closing bug #519796
-       * configure.ac:
-       * babl/Makefile.am:
-       * tests/Makefile.am: Only -ldl if required, passed automatically via
-       $LIBS
-
-2008-02-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: post release version increment to 0.0.21
-
-=========================== 0.0.20 released =============================
-
-2008-02-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * NEWS: updated for 0.0.20 release.
-       * configure.ac: incremented version.
-
-2008-02-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/Makefile.am: use mktemp instead of tempfile.
-
-2008-02-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/Makefile.am: -I$(top_builddir) to be able to include
-       config.h
-
-2008-02-19  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl-fish-path.c (test_create): add some extra pixels
-       outside the valid range to fix issues with wrong clamping of
-       conversions.
-
-2008-02-19  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl-fish-path.c: renamed test_pixels to num_test_pixels.
-
-2008-02-19  Sven Neumann  <sven@gimp.org>
-
-       * babl/babl-fish-path.c (test_create): reverted previous change as
-       it introduces the risk of not testing any values between 0.0 and 1.0.
-
-2008-02-19  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish-path.c: (test_create): make the testbuffer contain
-       values in the range -0.25 .. 1.75 instead of 0.0 .. 1.0, might fix
-       issues with wrong clamping of float->8bit conversions.
-
-2008-02-15  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: cleaned up win32 detection vs plug-in compilation
-       specifics, added DYNAMICLIB paramter for gcc which defaults to -shared
-       for win32 and -dynamiclib for darwin.
-       * extensions/Makefile.am: use $(DYNAMICLIB) instead of -shared.
-
-2008-02-11  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * configure.ac: Set shrext to ".dylib" for Darwin (ie. Mac OS).
-
-       * babl/babl-extension.c: Use BABL_DIR_SEPARATOR instead of "/".
-
-2008-01-22  Sven Neumann  <sven@gimp.org>
-
-       * extensions/gimp-8bit.c (u8_gamma_2_2_to_float_linear): use the
-       correct lookup table.
-
-2008-01-20  Øyvind Kolås  <pippin@gimp.org>
-
-       Always use BablFishPath's for accepted conversions. The path
-       construction code is the location of the regression test, an
-       earlier (now unneeded) optimization allowed using the first
-       and best conversion available. The (not in bugzilla afair) bug
-       manifest by this depended on the order of .so's on the file system
-       to manifest itself.
-
-       * babl/babl-fish.c: (go_fishing): only accepts paths when we go
-       fishing for existing conversions.
-       (babl_fish): elaborated a comment about why we avoid shortcut
-       conversions and only paths.
-
-2008-01-17  Øyvind Kolås  <pippin@gimp.org>
-
-       Applied patch from Deji Akingunola <dakingun@gmail.com> to make babl
-       correctly pick up the path to the extensions on 64bit systems. Fixes
-       bug #510038
-
-       * babl/Makefile.am: added -DLIBDIR
-       * babl/babl-extension.c: use libdir and not PREFIX "/lib" when
-       defining the default BABL_PATH.
-
-2008-01-10  Sven Neumann  <sven@gimp.org>
-
-       * extensions/gimp-8bit.c: added extension to speed up code paths
-       that are executed by the GIMP/GEGL hybrid. So far only 8bit to
-       float conversions are handled.
-
-2008-01-10  Sven Neumann  <sven@gimp.org>
-
-       * extensions/Makefile.am: extended CFLAGS so that config.h can be
-       included.
-
-       * extensions/*.c: fixed up includes.
-
-       * extensions/gegl-fixups.c: use linear <-> gamma conversions from
-       base/util.c.
-
-2008-01-07  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * babl/babl-extension.c (babl_extension_load_dir): Reverted previous
-       change. BABL hasn't been updated to use gmodule (yet).
-
-2008-01-07  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * babl/babl-extension.c (babl_extension_load_dir): Use G_MODULE_SUFFIX
-       instead of a hard-coded suffix.
-
-2008-01-06  Sven Neumann  <sven@gimp.org>
-
-       * extensions/CIE-Lab.c: made internal functions static.
-
-2007-12-30  Sven Neumann  <sven@gimp.org>
-
-       * extensions/gggl-lies.c (table_init): completely fill the lookup
-       tables for conversion from float to integer.
-
-2007-12-30  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * extensions/Makefile.am: Use SHREXT instead of hard-coded ".so".
-
-2007-12-30  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: post release version increment to 0.0.19
-
-=========================== 0.0.18 released =============================
-
-2007-12-30  Øyvind Kolås  <pippin@gimp.org>
-
-       * NEWS: updated for 0.0.18 release
-       * configure.ac: increased version to 0.0.18 for release.
-
-2007-12-29  Michael Natterer  <mitch@gimp.org>
-
-       * babl/babl-fish-path.c (chain_contains_fmt): one const was
-       forgotten.
-
-2007-12-29  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl.h:
-       * babl/babl-classes.h:
-       * babl/babl-fish-path.c:
-       * babl/babl-fish-reference.c:
-       * babl/babl-fish.c: 
-       * babl/babl-internal.[ch]: Const'ified code with Babl*'s refering to
-       formats.
-
-2007-02-17  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: post release version increment to 0.0.17
-
-=========================== 0.0.16 released =============================
-
-2007-02-17  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: increased version to 0.0.16 for release.
-
-2007-11-25  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-image.c: (babl_image_from_linear): do additional casts to
-       silence warnings from compiler.
-
-2007-11-25  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: changed documentation to use babl_format
-       instead of passing naked strings into babl_fish, (both will work,
-       but using babl_format is a bit saner).
-
-2007-11-25  Øyvind Kolås  <pippin@gimp.org>
-
-       * NEWS: updated.
-       * Makefile.am: added COPYING and COPYING.LESSER
-       * docs/Makefile.am: added COPYING and COPYING.LESSER
-
-2007-11-13  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish.c: (babl_fish_process): swapped source and
-       destination around in memcpy.
-
-2007-11-13  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish.c: (go_fishing): optimized fishing when looking
-       up existing fish (should perhaps be moved to lists going from given
-       formats, similar to how conversions are added there instead.) Made
-       go_fishing accept BABL_FISH_REFERENCE when source and desintation
-       formats are equal.
-         (babl_fish_process): removed most of the need for BablImage for
-         linear buffers, do a memcpy when source and destination formats
-         are equal (and we're a BABL_FISH_REFERENCE).
-       * babl/babl-db.[ch]: moved the BablDb struct out into public to
-       allow faster iteration through it.
-
-2007-11-11  Øyvind Kolås  <pippin@gimp.org>
-
-       * Modified copyright statement to refer to an URL instead of a civic
-       address for the Free Software Foundation and the text of the license.
-
-2007-11-11  Øyvind Kolås  <pippin@gimp.org>
-
-       Keep a cache of the linear version of BablImage's needed for
-       BablFormats around. This reduces the constant overhead for
-       conversions.
-
-       * babl/babl-classes.h: added .image_template field to BablFormat.
-       * babl/babl-format.c: (format_new): make .image_template NULL by
-       defualt.
-       * babl/babl-image.c: (babl_image_from_linear): use .image_template if
-       available instead of creating our own BablImage from scratch.
-       * babl/babl-memory.c: (babl_free): special case freeing of BablImage
-       and BablFormat to do the extra juggling needed for the image_template
-       cache.
-
-2007-11-10  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish-stats.c: (table_destination_each): improve
-       visualization of results.
-
-2007-11-10  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-db.c: (babl_db_each_inline), (babl_db_exist): Optimized
-       lookup by adding an inline version of babl_db_each specially for
-       babl_db_exist.
-
-2007-11-10  Øyvind Kolås  <pippin@gimp.org>
-
-       Do not accept BABL_FISH_REFERENCE as a valid result when fishing for
-       existing fishes.
-
-       * babl/babl-fish.c: (fishing_result_examine), (babl_fish):
-
-2007-11-10  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: documented BABL_STATS environment
-       variable.
-
-2007-11-09  Øyvind Kolås  <pippin@gimp.org>
-
-       Upgraded babl from LGPLv2 to LGPLv3. Copyright statements in all files
-       have been updated to reflect this change, the permission to use leter
-       versions of the GNU licenses have been retained in all instances.)
-
-       * COPYING: changed to GPLv3
-       * COPYING.LESSER: added (LGPLv3's overlay over GPLv3)
-
-2007-10-30  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * configure.ac: DIR_SEP='\' is evil, use DIR_SEP='\\' instead.
-
-2007-09-14  Kevin Cozens  <kcozens@cvs.gnome.org>
-       
-       * configure.ac: Define name of babl library file.
-
-       * babl/babl-extension.c: Use name of babl library defined when
-       ./configure was run.
-
-2007-09-14  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       Changes to let BABL find its extensions at run time when the
-       BABL_PATH environment variable is not set.
-
-       * configure.ac: Don't specify BABL_PATH in here. Renamed
-       BABL_LIST_SEPERATOR to BABL_DIR_SEPARATOR.
-
-       * babl/babl-extension.c: Include /lib as part of default BABL_PATH.
-       Renamed #define's used to specify the path and directory separators.
-       Use the values from config.h that were set when ./configure was run.
-
-2007-09-11  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * autogen.sh: Added check for existence of automake-1.10.
-       Fixes bug #474507.
-
-2007-09-10  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-internal.c: (babl_process): return immediately if 0 pixels
-       were requested to be processed.
-
-2007-09-01  Øyvind Kolås  <pippin@gimp.org>
-
-       * MAINTAINERS: added.
-
-2007-08-30  Øyvind Kolås  <pippin@gimp.org>
-
-       Applied patch from Kevin Cozens fixing bug #467652
-
-       * babl/Makefile.am: Use DL flag set by ./configure instead of
-       hard-coding it in Makefile
-
-2007-08-02  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * extensions/gggl.c
-       * extensions/gggl-lies.c: Only include math.h once.
-
-2007-08-01  Øyvind Kolås  <pippin@gimp.org>
-
-       Fixed compiler abort on certain LDFLAGS values (-Wl,-z,defs) by
-       applying patch from christopher taylor, closing bug #462536.
-
-       * babl/Makefile.am:
-       * extensions/Makefile.am:
-
-2007-03-21  Øyvind Kolås  <pippin@gimp.org>
-
-       Reindented all of the code using uncrustify.
-
-2007-03-21  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: Make force the value of shrext to either .dll or .so
-       (it seems like it wasn't defined for unixy systems after all).
-
-2007-03-13  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * configure.ac: use PATHSEP (platform-dependent, defined to ';' on
-       win32) for BABL_LIST_SEPERATOR
-
-2007-03-13  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * configure.ac: AC_SUBST and AC_DEFINE $shrext into variables for
-       Makefiles and source.
-       * extension/Makefile.am: use $(SHREXT) instead of .$SOext.
-       * babl/babl-extension.c: use SHREXT instead of a hardcoded ".so"
-       and get rid of a dirent->d_ino > 0 check which has been there for
-       reasons unknown.
-       
-2007-03-12  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * Makefile.am: 
-       * extensions/Makefile.am: applied patch by John Marshall to make
-       babl extensions build on Windows. They do not work yet, though. Fixes
-       bug #409957.
-
-2007-03-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish.c: (fishing_result_examine), (go_fishing),
-       (babl_fish): go fishing for an existing fish for the
-       source/destination combination before trying to create one.
-
-2007-02-22  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: make _Babl be a typedef and not a union that
-       gets included and defined for every single object generated.
-       Fixes bug #409781.
-
-2007-02-18  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: post release increment to 0.0.15
-
-=========================== 0.0.14 released =============================
-
-2007-02-17  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: increased version to 0.0.14 for release.
-
-2007-02-17  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: adds, reordering and trimming of
-       information in webpage.
-
-2007-02-17  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/model-gray.c: removed obsoleted FIXME.
-
-2007-02-17  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: reincorporate NEWS, added link to
-       extensions dir in subversion.
-
-2007-02-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish-path.c: (legal_error), (max_path_length): cache the
-       values looked up from BABL_ERROR and BABL_PATH_LENGTH environment
-       variables, changed default maximum conversion path length from 3 to 4.
-
-2007-02-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/formats.c: (babl_formats_init): specify Y'CbCrA model
-       instead of Y'CbCr for Y'CbCrA float.
-
-2007-02-15  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gegl-fixups.c: (conv_rgbAF_rgb8): simplified logic
-       of code to speed it up.
-
-2007-02-15  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/model-rgb.c: (premultiplied_to_non_premultiplied),
-       (rgba_gamma_2_2_premultiplied2rgba): avoid divisions by zero,
-       thus making the reference conversions correct.
-
-2007-02-11  Øyvind Kolås  <pippin@gimp.org>
-
-       * NEWS: updated news for many versions.
-
-2007-02-09  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * autogen.sh: Changed CVS reference to SVN.
-
-       * configure.ac: Set BABL_UNSTABLE to 1 for odd micro numbers
-       when major and minor are both 0.
-
-       * babl.pc.in
-       * babl/Makefile.am 
-       * tests/Makefile.am: Use version number in library name.
-
-2007-02-09  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * babl/Makefile.am
-       * babl/base/Makefile.am
-       * docs/graphics/Makefile.am: Removed references to .cvsignore.
-
-       * docs/Makefile.am: Removed reference to .cvsignore. Removed
-       ^M from end of lines.
-
-2007-01-31  Øyvind Kolås  <pippin@gimp.org>
-       
-       Removed .cvsignore files.
-
-2007-01-07  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set version to 0.0.13
-
-=========================== 0.0.12 released =============================
-
-2007-01-07  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set version to 0.0.12
-
-2007-01-28  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: things are not in CVS but SVN now.
-
-2007-01-28  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-conversion.c: (babl_conversion_new): shut up compiler
-       warning.
-
-2007-01-28  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gegl-fixups.c: (init): give names to the custom formats.
-
-2007-01-28  Øyvind Kolås  <pippin@gimp.org>
-
-       * AUTHORS: added Michael Natterer as janitor.
-
-2007-01-28  Øyvind Kolås  <pippin@gimp.org>
-
-       * AUTHORS: added Tim Mooney
-
-2007-01-28  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gegl-fixups.c: (conv_bgrA8_rgba8), (init): added
-       optimized permutator for going from cairo's buffer format to RGBA byte
-       order, as well as unpremultiplying.
-
-2007-01-28  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gegl-fixups.c: fixed gamma conversion.
-
-2007-01-22  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * docs/Makefile.am: declare the test programs used during doc
-       creating as variables to keep the commands in targets readable.
-
-2007-01-22  Øyvind Kolås  <pippin@gimp.org>
-
-       Applied patch from Tim Mooney fixing bug #392916
-
-       * extensions/Makefile.am: $(prefix)/lib/babl-0.0 for its extensions
-       dir, which is incorrect for many 64 bit platforms.  It should instead
-       use $(libdir)/babl-0.0.
-
-2007-01-22  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-internal.h: applied patch from Tim Mooney fixing bug
-       #392843, replacing _FUNCTION_ with _func_ which is the C99 equivalent
-       of the gcc extension.
-
-2007-01-16  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * configure.ac: remove the check for dlopen again - didn't work as
-       intended 
-       * babl/babl-extension.c: for #idfef WIN32, #define dl* functions
-       to their Windows equivalents (LoadLibrary, GetProcAddress,
-       FreeLibrary). 
-
-2007-01-08  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-extension.c: define HAVE_DLOPEN if HAVE_DLFCN is set.
-
-2007-01-07  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set version to 0.0.11
-
-=========================== 0.0.10 released =============================
-
-2007-01-07  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set version to 0.0.10
-       * docs/index-static.html.in: reworded things due to the subversion
-       switch.
-
-2007-01-06  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       This change makes babl buildable on Windows.
-       
-       * configure.ac: Add a check for function dlopen and disabled
-       static libs by default. Check for gettimeofday by using
-       AC_REPLACE_FUNCS.
-       
-       * babl/babl-internal.h: Add definitions for srandom and radnom to
-       srand and rand for the windows platform.
-       * babl/babl-conversion.c 
-       * babl-model.c: Include babl-internal.h after math.h
-
-       * babl/babl-extension.c: Use #ifdef HAVE_DLOPEN to hide dl* if it
-       is not available.
-
-       * babl/Makefile.am: Removed win32_libs and added @LTLIBOBJS@ to
-       LIBADD to get the replacement for gettimeofday linked in if
-       needed. 
-
-       * babl/gettimeofday.c: New file to provide a replacement for
-       gettimeofday, only used on Windows yet.
-
-2007-01-06  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * Makefile.am: don't go into the extensions subdirectory on
-       Windows 
-       * extensions/Makefile.am: removed the win32_libs definition, using
-       libgw32c does more harm than good, apparently
-       
-2007-01-06  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * docs/Makefile.am: added EXEEXT to the tools used in some
-       commands 
-
-       * docs/tools/changelog2rss: remove unused SET_TITLE and
-       LISTING_TYPE; the former did cause an error on Windows
-
-2007-01-01  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * docs/index-static.html.in: Fixes for various punctuation, grammar,
-       and typographical errors.
-
-2007-01-01  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * configure.ac: Changes to properly (or at least better) version the
-       babl library.
-
-       * babl.pc.in: It is too soon to include version information in the
-       name of the babl library at link time.
-
-2007-01-01  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       Some changes to fix build problems in FreeBSD and Windows.
-
-       * configure.ac: Added missing m4 defines specifying version numbers,
-       and tests for libdl and libm (sets DL_LIB and MATH_LIB respectively).
-
-       * babl.pc.in: Replaced several hard-coded items with ones defined
-       when configure is run.
-
-       * babl/base/Makefile.am:
-       * extensions/Makefile.am:
-       * tests/Makefile.am: Use $(DL_LIB) and $(MATH_LIB) instead of
-       hard-coded options.
-
-2006-12-29  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set the version of babl to 0.0.9
-
-=========================== 0.0.8 released =============================
-
-2006-12-29  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set the version of babl to 0.0.8
-
-2006-12-29  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/Makefile.am: include changelog2rss script.
-
-2006-11-17  Øyvind Kolås  <pippin@gimp.org>
-
-       Make babl compile with stricter compiler warnings, mostly related to
-       changing pointer arith from void* to char*.
-
-       * babl/babl-classes.h:
-       * babl/babl-component.c: (component_new):
-       * babl/babl-conversion.c: (conversion_new),
-       (babl_conversion_planar_process), (babl_conversion_process):
-       * babl/babl-core.c: (convert_double_double), (rgba_to_rgba):
-       * babl/babl-extension.c: (extension_new):
-       * babl/babl-fish-path.c: (babl_fish_path):
-       * babl/babl-fish-reference.c: (babl_fish_reference),
-       (convert_to_double), (convert_from_double), (process_same_model),
-       (babl_fish_reference_process):
-       * babl/babl-fish-simple.c: (babl_fish_simple):
-       * babl/babl-fish.c: (babl_fish_process):
-       * babl/babl-format.c: (format_new):
-       * babl/babl-image.c: (image_new), (babl_image_from_linear),
-       (babl_image):
-       * babl/babl-internal.h:
-       * babl/babl-memory.c: (babl_malloc):
-       * babl/babl-model.c: (model_new):
-       * babl/babl-type.c: (type_new), (r_interval), (test_init):
-       * babl/base/babl-base.c:
-       * babl/base/babl-base.h:
-       * babl/base/formats.c:
-       * babl/base/model-gray.c: (rgba_to_graya), (rgba_to_gray),
-       (rgb_to_gray_2_2), (gray_2_2_to_rgb), (graya_to_rgba),
-       (gray_to_rgba), (gray_alpha_premultiplied_to_rgba),
-       (rgba_to_gray_alpha_premultiplied),
-       (non_premultiplied_to_premultiplied),
-       (premultiplied_to_non_premultiplied),
-       (rgba2gray_gamma_2_2_premultiplied),
-       (gray_gamma_2_2_premultiplied2rgba):
-       * babl/base/model-rgb.c: (copy_strip_1), (g3_gamma_2_2),
-       (g3_inv_gamma_2_2), (non_premultiplied_to_premultiplied),
-       (premultiplied_to_non_premultiplied),
-       (rgba2rgba_gamma_2_2_premultiplied),
-       (rgba_gamma_2_2_premultiplied2rgba), (rgba2rgba_gamma_2_2),
-       (rgba_gamma_2_22rgba):
-       * babl/base/model-ycbcr.c: (rgba_to_ycbcra), (rgba_to_ycbcr),
-       (ycbcra_to_rgba), (ycbcr_to_rgba):
-       * babl/base/type-float.c: (convert_double_float),
-       (convert_float_double):
-       * babl/base/type-u16.c: (convert_double_u16_scaled),
-       (convert_u16_double_scaled):
-       * babl/base/type-u32.c: (convert_double_u32_scaled),
-       (convert_u32_double_scaled):
-       * babl/base/type-u8.c: (convert_double_u8_scaled),
-       (convert_u8_double_scaled):
-       * extensions/CIE-Lab.c: (rgba_to_lab), (lab_to_rgba),
-       (rgba_to_laba), (laba_to_rgba), (convert_double_u8_scaled),
-       (convert_u8_double_scaled), (convert_double_u16_scaled),
-       (convert_u16_double_scaled):
-       * extensions/gegl-fixups.c: (conv_F_8), (conv_8_F):
-       * extensions/gggl-lies.c: (conv_F_8), (conv_F_16), (conv_8_F),
-       (conv_16_F):
-       * extensions/gggl.c: (conv_F_8), (conv_F_16), (conv_8_F),
-       (conv_16_F):
-       * extensions/naive-CMYK.c: (rgba_to_cmyk), (cmyk_to_rgba):
-       * tests/babl-html-dump.c: (normalize):
-       * tests/babl_class_name.c:
-       * tests/formats.c: (format_check):
-       * tests/grayscale_to_rgb.c:
-       * tests/models.c: (model_check):
-       * tests/rgb_to_bgr.c:
-       * tests/rgb_to_ycbcr.c:
-       * tests/srgb_to_lab_u8.c:
-       * tests/types.c: (type_check):
-
-2006-11-15  Øyvind Kolås  <pippin@gimp.org>
-
-       Set the default BABL_PATH based on the prefix babl is compiled for.
-
-       * babl/Makefile.am:
-       * babl/babl-extension.c:
-
-2006-11-07  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/CIE-Lab.c: (formats): added "CIE Lab alpha float" as
-       a default format.
-
-2006-08-31  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set the version of babl to 0.0.7
-
-=========================== 0.0.6 released =============================
-
-2006-08-31  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set the version of babl to 0.0.6
-
-2006-10-09  Øyvind Kolås  <pippin@gimp.org>
-
-       Cleaned up the typedef for Babl, fixes issues with g++.
-
-       * babl/babl-classes.h:
-       * babl/babl-conversion.c: (conversion_new):
-       * babl/babl-fish-path.c: (babl_fish_path):
-       * babl/babl-fish-reference.c: (babl_fish_reference):
-       * babl/babl-fish-simple.c: (babl_fish_simple):
-
-2006-09-26  Dominik Ernst  <dernst@gmx.de>
-
-       * babl/babl-classes.h: fixed an issue with g++
-
-2006-09-23  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/Makefile.am: output the conversion grid when building on
-       crucible.
-
-2006-09-14  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-internal.c: (babl_process): added global babl_total_usecs,
-       not exported through headers, but useful to be able to substract the
-       babl conversion time from other algorithms using babl.
-
-2006-09-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * autogen.sh: decreased required automake version to 1.7.9. (It
-       could probably be decreased even further, but this is at least
-       known to work.)
-
-2006-09-12  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * autogen.sh: use the autogen.sh of GIMP as a base for babl's
-       autogen.sh. Among other things, this enables maintainer mode by
-       default. 
-
-2006-09-10  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * babl/babl-classes.h
-       * babl/babl-conversion.c
-       * babl/babl-fish-path.c
-       * babl/babl-fish-stats.c
-       * babl/babl-internal.c: Tick times are in usecs not msecs. Use longs
-       to hold tick values.
-
-       * babl/babl-util.h:
-       * babl/babl-util.c (babl_ticks): Fixed calculation of time (usecs
-       not msecs). Changed declaration to return a long not unsigned int.
-
-2006-09-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/Makefile.am: moved -fPIC from LD_FLAGS to CFLAGS.
-       
-2006-09-08  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/Makefile.am: added -fPIC to LD_FLAGS, thus making it
-       compile on 64bit archs as well.
-
-2006-09-04  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * extensions/Makefile.am: have to link with libbabl.a, at least on
-       the Windows platforms
-
-2006-08-31  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/.cvsignore: added Makefile.in
-
-2006-08-31  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set the version of babl to 0.0.5 (odd micro indicating
-       that it is a CVS version).
-
-=========================== 0.0.4 released =============================
-
-2006-08-31  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: set the version of babl to 0.0.4
-       * docs/index-static.html.in: added downloading location for tarballs
-       of babl.
-       * AUTHORS: Added Kevin Cozens
-
-2006-08-31  Øyvind Kolås  <pippin@gimp.org>
-
-       * Makefile.am: added a dependency on all for README, making it
-       possible to do ./autogen.sh && make distcheck #from a clean CVS
-       checkout.
-
-2006-08-28  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       * configure.ac: Added AM_MAINTAINER_MODE.
-
-       * docs/Makefile.am: Moved BablFishPath.txt to BUILT_EXTRA_DIST.
-
-       * tests/Makefile.am: Removed .cvsignore from EXTRA_DIST.
-
-2006-08-28  Kevin Cozens  <kcozens@cvs.gnome.org>
-
-       Changes to get 'make distcheck' working properly.
-
-       * docs/Makefile.am: Added BablFishPath.txt to DISTCLEANFILES.
-
-       * extensions/Makefile.am: Added.
-
-       * extensions/Makefile.in: Removed (replaced by Makefile.am).
-
-2006-08-25  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * configure.ac: added AC_LIBTOOL_WIN32_DLL as a preparation for
-       proper builds of shared libs on win32 & there's no need to define
-       OS_WIN32 here... 
-       * babl/babl-extension.c:  ...if the only place where it is needed
-       can be handled by HAVE_DLFCN_H
-
-2006-08-24  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/Makefile.in: do not add libbabl.a into plug-ins
-
-2006-07-06  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl.pc.in:  Added -lm to the list of libraries that need to be
-       linked along with babl.
-
-2006-06-24  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl.pc.in: stripped trailing /babl from CFLAGS include path.
-
-2006-06-12  Øyvind Kolås  <pippin@gimp.org>
-
-       Do not expect the user to pass in BablImages (existance of babl
-       pointer decorations should not be allowed to be used to implement type
-       checking for provided buffers/bablimages)
-
-       * babl/babl-fish.c: (babl_fish_process):
-       * babl/babl-fish-reference.c: (babl_fish_reference_process):
-       * docs/index-static.html.in: removed section about planar BablImages
-       since the API is now disabled.
-
-2006-06-06  Øyvind Kolås  <pippin@gimp.org>
-
-       Register all the formats that the gggl based conversions use in
-       babl-base. This allows a string based short hand vocabulary of format
-       names that can be expected to exist.
-
-       * babl/base/Makefile.am: added formats.c
-       * babl/base/babl-base.c: (babl_base_init): initialize formats.
-
-2006-06-06  Øyvind Kolås  <pippin@gimp.org>
-
-       Added conversions based on gggl that assume no gamma in their
-       conversions.
-       * extensions/gggl-lies.c: Added.
-
-2006-06-06  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/Makefile.am: redirect the check for tempfile to /dev/null
-       * docs/tools/xml_insert.sh: Add tempfile workaround here as well.
-
-2006-06-06  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/Makefile.am: Do not rely that a command calle tempfile exists.
-
-2006-06-05  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gegl-fixups.c: A babl extension to make the testing of
-       gegl faster.
-
-2006-06-02  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gggl.c: (table_init): Fix some compile warnings.
-
-2006-06-02  Øyvind Kolås  <pippin@gimp.org>
-
-       I'm not entirely sure about installing babl-classes.h like this, it
-       might make more sense to create setters/getters to be used. Thus
-       making it possible to extend the structs at a later stage without
-       breaking binary compatibility.
-
-       * babl/Makefile.am: Added babl-classes.h to the installed headers
-       * babl/babl-classes.h: Made the magic number fit in 32bit int.
-       * babl/babl.h: include babl-classes.h
-
-2006-02-22  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: added a link to the DHTML version of the
-       coverage map.
-
-2006-02-22  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gggl.c: (conv_rgbaF_rgb8), (conv_rgbAF_rgbF), (init):
-       added two more conversions for gggl usage.
-
-2005-12-17  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * extensions/Makefile.in: add libgw32 and its dependencies to
-       LDADD for the win32 platform
-
-2005-11-10  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: Minor reformulations and spelling fixes.
-
-2005-11-08  Sven Neumann  <sven@gimp.org>
-
-       * configure.ac: use AM_CONFIG_HEADER instead of AC_CONFIG_HEADERS.
-
-2005-11-04  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-format.c: (create_name): fixed an invalid memory access in
-       comparision of component order (and now also length.)
-
-2005-10-08  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: Fixed the second processing example. (
-       added missing pixel_count)
-
-2005-09-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: Added time consumption instrumentation to
-       BablFish.
-       * babl/babl-fish-path.c: (babl_fish_path), (babl_fish_path_process):
-       intialization of instrumentation data.
-       * babl/babl-fish-stats.c: (table_destination_each), (each_conv),
-       (conversions), (babl_fish_stats): Output timing data, as well as a
-       list of all conversions with the obviously bad ones marked in red.
-       * babl/babl-internal.c: (babl_process): update instrumentation.
-       * babl/babl-introspect.c: (conversion_introspect): only query error
-       from conversions where that is legal.
-       * babl/babl-util.c: changed from msecs to nsecs (might be some more
-       places in the code to change names of variables.)
-       * extensions/gggl.c: (conv_gF_gaF), (conv_gF_rgbF), (conv_rgbF_gF),
-       (conv_rgbaF_rgb8): Changes to increase sanity.
-
-2005-09-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/srgb_to_lab_u8.c: (test): renamed format (srgb -> R'G'B' u8)
-
-2005-09-27  Øyvind Kolås  <pippin@gimp.org>
-
-       Updates done due to improvements gotten from BablFishStat feedback.
-
-       * babl/base/model-gray.c: (components), (models),
-       (rgba2gray_gamma_2_2_premultiplied),
-       (gray_gamma_2_2_premultiplied2rgba), (conversions):
-       * babl/base/model-rgb.c: (components), (models), (copy_strip_1),
-       (g3_gamma_2_2), (g3_inv_gamma_2_2),
-       (non_premultiplied_to_premultiplied),
-       (premultiplied_to_non_premultiplied),
-       (rgba2rgba_gamma_2_2_premultiplied),
-       (rgba_gamma_2_2_premultiplied2rgba), (rgba2rgba_gamma_2_2),
-       (rgba_gamma_2_22rgba), (conversions), (formats):
-       * babl/base/model-ycbcr.c: (models), (formats):
-       * docs/index-static.html.in:
-       * extensions/gggl.c: (conv_F_8), (conv_8_F), (conv_F_D),
-       (conv_D_F), (conv_rgba8_rgbaF), (conv_rgb8_rgbF), (conv_ga8_gaF),
-       (conv_rgbaF_rgbaD), (conv_rgbaD_rgbaF), (conv_rgbAF_rgbaF),
-       (conv_rgbaF_rgbAF), (conv_rgbaF_rgbF), (conv_rgbF_rgbaF),
-       (conv_rgbaF_gaF), (conv_rgbaF_rgb8), (conv_rgbA16_rgbaF),
-       (conv_rgb8_rgba8), (conv_rgbA8_rgb8), (init):
-
-2005-09-27  Øyvind Kolås  <pippin@gimp.org>
-
-       Upgrade of BablFishPath.
-
-       * babl/babl-fish-path.c: (legal_error), (max_path_length),
-       (get_conversion_chain), (chain_contains_fmt), (chain_gen_each),
-       (babl_fish_path), (chain_process), (babl_fish_path_process),
-       (test_create), (chain_error): Various updates, needed instrumentation
-       and error data is now calculated and cached.
-       * babl/babl-fish-reference.c: (babl_fish_reference): do not update
-       instrumentation for internal calls.
-       * babl/babl-fish-simple.c: (babl_fish_simple): do not update
-       instrumentation for internal calls.
-       * babl/babl-introspect.c: (conversion_introspect): some more
-             information.
-       * babl/babl-model.c: (test_create), (babl_model_is_symmetric): use
-         comparion function from babl-util
-       * babl/babl-conversion.c: (test_create), (babl_conversion_cost),
-       (babl_conversion_error): use comparion function from babl-util.
-       * babl/babl.c: (babl_init): no need to do post extension tricks
-                                   anymore.
-       * babl/babl-core.c: (babl_core_init): added PAD component.
-         
-2005-09-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-util.h,
-       * babl/babl-util.c: (babl_rel_avg_error): moved buffer comparison
-                                                 function to one place.
-       * babl/babl-classes.h: Added error field to fishes, made path length
-       dynamic.
-       * babl/babl-internal.h: added misc global constants.
-       * babl/babl-internal.c: created caching accessors in classes, to avoid
-       very large bootstrapping time.
-       * babl/babl-conversion.c: (test_create), (babl_conversion_cost),
-       (babl_conversion_error):
-       * babl/babl-format.c: (test_create), (babl_format_loss):
-       * babl/babl-type.c: (babl_type_is_symmetric):
-
-2005-09-27  Øyvind Kolås  <pippin@gimp.org>
-
-       Moved html generator stats code into a seperate source fil in core,
-       babl now creates /tmp/babl-stats.txt when the BABL_STATS enviroment
-       variable is set.
-
-       * babl/Makefile.am:
-       * babl/babl.c:
-       * tests/babl_fish_path_dhtml.c: (main):
-       * babl/babl-fish-stats.c: (table_destination_each).
-
-2005-09-19  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: s/DHTML/interactive/
-
-2005-09-19  Øyvind Kolås  <pippin@gimp.org>
-
-       BablFishPath touchups.
-
-       * babl/babl-conversion.c: cost = cost * 10 + 1, makes the overhead
-       of actually running a conversion 1. Removed stupid long pats from
-       created conversions.
-       * babl/babl-fish-path.c: (chain_gen_each): Ensure the chain doesn't
-       take us through larger loss than allowed.
-       * babl/babl-internal.c: (babl_extension_post_load): do not
-       autogenerate formats.
-       * docs/index-static.html.in: updating documentation.
-       * tests/babl_fish_path_dhtml.c: (table_destination_each),
-       (table_source_each), (main): recoded to use CSS tricks instead of
-       javascript, reduced generated file size by 50%;
-       * extensions/gggl.c: (conv_labF_xyzF), (conv_xyzF_labF): added missing
-       return value.
-
-2005-09-19  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/gggl.c: Added the bulk of gggl based conversions as an
-       extension. Many of these don't live up to the quality requirements of
-       babl, but some do, and provide a good base for further BablFishPath
-       coverage.
-
-2005-09-18  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/tools/changelog2rss: tool to create RSS feed of ChangeLog.
-
-2005-09-18  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/Makefile.am: Included BablFishPath.[html|txt]
-       * docs/index-static.html.in: included some ramblings about the
-       background and purpose of babl.
-
-2005-09-18  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/Makefile.am:
-       * tests/babl_fish_path_dhtml.c,
-       * tests/babl_fish_path_fitness.c: new introspection outputters, that
-       report on the conversion matrix of BablFishPath.
-       * tests/babl-html-dump.c: (main): removed conversions, since it is
-       now used as "Vocabulary" in the documentation,.
-       * tests/conversions.c: (each_conversion), (main):
-       * tests/formats.c: (format_check), (main):
-       * tests/models.c: (model_check), (main):
-       * tests/types.c: (type_check), (main): Moved the logic into BablCore
-       in previous commit.
-
-2005-09-18  Øyvind Kolås  <pippin@gimp.org>
-
-
-       Updating test suite, conversion and format quality testing
-       code folded into babl-core in previous commit.
-
-2005-09-18  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/model-cmyk.c: (rgb_to_cmyk), (cmyk_to_rgb),
-       (conversions), (formats):
-       * babl/base/model-gray.c: (rgba_to_graya), (rgba_to_gray),
-       (graya_to_rgba), (gray_to_rgba), (conversions):
-       * babl/base/model-rgb.c: (formats):
-       * babl/base/model-ycbcr.c: (rgba_to_ycbcra), (rgba_to_ycbcr),
-       (ycbcra_to_rgba), (ycbcr_to_rgba), (conversions), (formats):
-       * extensions/CIE-Lab.c: (rgba_to_lab), (lab_to_rgba),
-       (rgba_to_laba), (laba_to_rgba), (conversions):
-       * extensions/naive-CMYK.c: (init), (rgba_to_cmyk), (cmyk_to_rgba):
-
-       register linear reference conversions instead, since they can be used
-       in BablFishPath chains.
-
-2005-09-18  Øyvind Kolås  <pippin@gimp.org>
-
-       Adding BablFishPath, as well as splittin out Simple and Reference
-       from babl-fish.c. (lazy commit of large changes :d )
-
-       * babl/babl-internal.h:
-       * babl/babl-core.c: (rgba_to_rgba), (babl_core_init):
-       * babl/babl-db.c: (babl_db_count):
-       * babl/babl-db.h:
-       * babl/babl-fish.c: (match_conversion), (babl_conversion_find),
-       (babl_fish_db), (babl_fish), (babl_fish_process),
-       (each_babl_fish_destroy):
-       * babl/babl-format.c: (babl_format_new), (babl_formats_count),
-       (babl_format_with_model_as_type), (test_create),
-       (babl_format_loss):
-       * babl/babl-internal.c: (babl_process), (each_conversion),
-       (each_format), (gen_type_format_for_model),
-       (gen_formats_for_model), (babl_extension_post_load):
-       * babl/babl-introspect.c: (conversion_introspect):
-       * babl/babl-model.c: (babl_model_new), (test_create),
-       (reference_format), (construct_double_format),
-       (babl_model_is_symmetric):
-       * babl/babl-sanity.c: (id_sanity):
-       * babl/babl-type.c: (babl_type_new), (r_interval), (test_init),
-       (double_vector_format), (babl_type_is_symmetric):
-
-2005-09-18  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: added BablFishPath
-       * babl/babl-util.c: (babl_list_each), (init_ticks), (babl_ticks):
-       * babl/babl-util.h:
-
-2005-09-18  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl.c: (babl_init),
-       * babl/babl.h: made babl_fish variadic.
-
-2005-09-18  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-memory.[ch]: (babl_free), (babl_realloc): made babl_free
-       variadic, and added the potential for a clearing realloc.
-
-2005-09-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/conversions.c: (test_init): code simplification.
-
-2005-09-12  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: add loss field to format class.
-       * babl/babl-format.c: (format_new): set loss field to -1 as initial
-       value.
-       * tests/conversions.c: (reference_format): simplify
-       * tests/formats.c: (test_init), (format_check), (main): code
-       simplification.
-
-2005-09-11  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl.h: use gcc 4.x attribute for NULL sentinel.
-       * babl/babl-format.c: (babl_format_new): added missing enumeration
-       values to switch.
-       * babl/babl-model.c: (babl_model_new): added missing enumeration
-       values to switch.
-
-2005-09-11  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/formats.c: new test (that might form the basis of loss
-       calculations done for ranking of formats).
-       * tests/Makefile.am: added new test
-
-2005-09-11  Øyvind Kolås  <pippin@gimp.org>
-
-       * extensions/CIE-Lab.c: (formats): s/cie-lab-u16/CIE Lab u16/
-
-2005-09-11  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: Removed unused list of conversions to
-       types/models/formats.
-
-       * babl/babl-conversion.c: (conversion_new):
-       * babl/babl-format.c: (each_babl_format_destroy), (format_new):
-       * babl/babl-image.c: (babl_image_from_linear):
-       * babl/babl-introspect.c: (item_conversions_introspect):
-       * babl/babl-memory.c: (babl_realloc):
-       * babl/babl-model.c: (each_babl_model_destroy), (model_new):
-       * babl/babl-sampling.c: (each_babl_sampling_destroy):
-       * babl/babl-sanity.c: (type_sanity), (model_sanity), (babl_sanity):
-       * babl/babl-type.c: (each_babl_type_destroy), (type_new):
-
-2005-09-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/Makefile.am: set BABL_PATH to builddir for creating the
-       documentation
-       * docs/index-static.html.in: various updates.
-
-2005-09-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/type-u16.c: (convert_double_u16_scaled):
-       * babl/base/type-u32.c: (convert_double_u32_scaled):
-       * babl/base/type-u8.c: (convert_double_u8_scaled),
-       (babl_base_type_u8):
-       * extensions/CIE-Lab.c: (convert_double_u8_scaled),
-       (convert_double_u16_scaled): uintval = rint (dval * MAXINT)
-
-2005-09-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/conversions.c: (validate_conversion): do relative average
-       error calculations.
-       * tests/srgb_to_lab_u8.c: update values.
-       * tests/types.c: set a very low tolerance.
-
-2005-09-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-format.c: (create_name): Create shorter names when
-       the format uses a single datatype and the components are listed in
-       model order.
-       * babl/base/model-lab.c: removed.
-       * babl/base/model-rgb.c: (formats),
-       * babl/base/model-ycbcr.c: (formats): Use automatic names for formats.
-
-2005-09-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: added error to BablConversion.
-       * babl/babl-conversion.c: (conversion_new), (babl_conversion_new):
-               track changes to fields in constructors.
-
-2005-09-08  Øyvind Kolås  <pippin@gimp.org>
-
-       * Makefile.am: build extensions before tests.
-       * extensions/Makefile.in: build extensions when check is done.
-       * tests/Makefile.am: removed erroniously added foo test.
-
-2005-09-08  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/type-float.c: 
-       * babl/base/type-u16.c: 
-       * babl/base/type-u8.c: s/"linear"/"plane"/
-       * babl/base/Makefile.am,
-       * babl/base/babl-base.c,
-       * babl/base/type-u32.c: new type.
-       * extensions/CIE-Lab.c: 
-       * extensions/Makefile.in: changes needed (for not yet added) lcms
-       extension.
-       * tests/Makefile.am: added new test.
-       * tests/conversions.c: new test to check fast paths against reference
-       fish.
-
-2005-09-08  Øyvind Kolås  <pippin@gimp.org>
-       
-       Made simple fishes work in the core.
-
-       * babl/babl-classes.h: reduced number of conversion classes.
-       removed unused from and to members in struct.
-       * babl/babl-conversion.c: (conversion_new), (babl_conversion_new),
-       (babl_conversion_linear_process), (babl_conversion_plane_process),
-       (babl_conversion_planar_process), (babl_conversion_process):
-       * babl/babl-component.c: (each_babl_component_destroy),
-       (component_new): removed unused from and to members.
-       * babl/babl-fish.c: (babl_conversion_find2),
-       (babl_conversion_find), (babl_fish_reference), (babl_fish_simple),
-       (babl_fish), (convert_to_double), (convert_from_double),
-       (babl_fish_reference_process): use fast path if found directly in a
-       simple fishes.
-       * babl/babl-format.c: (babl_format_new):
-       * babl/babl-internal.c: (babl_process):
-       * babl/babl-internal.h:
-       * babl/babl-introspect.c: (each_introspect):
-       * babl/babl-model.c: (babl_model_new):
-       * babl/babl-core.c: (babl_core_init): s/linear/plane/
-       * tests/babl_class_name.c: update according to class changes.
-
-2005-09-08  Øyvind Kolås  <pippin@gimp.org>
-
-       * AUTHORS: Added Micahel Schumacher, and email addresses.
-       * docs/index-static.html.in:
-       * docs/babl.css:
-       * tests/babl-html-dump.c: (main), (normalize), (show_item),
-       (hide_item), (each_item), (model_html), (type_html),
-       (conversion_html), (format_html): Use DHTML for expandable display of
-       registered data structures.
-       * docs/graphics/Makefile.am: added web target, and .SILENT option.
-       * docs/Makefile.am: added .SILENT option.
-       * configure.ac: added website location.
-
-2005-09-01  Michael Schumacher  <schumaml@cvs.gnome.org>
-
-       * configure.ac: added a check for OS_WIN32
-       * babl/Makefile.am: link with libgw32c to provide dl* functions on
-       win32 
-       * babl/babl-extension.c: added definitions of dl* function forwin32
-       * tests/Makefile.am: removed -ldl for win32
-
-2005-09-01  Sven Neumann  <sven@gimp.org>
-
-       * Makefile.am: don't dist the generated babl.pc file.
-
-2005-09-01  Sven Neumann  <sven@gimp.org>
-
-       * tests/Makefile.am (TESTS_ENVIRONMENT): set BABL_PATH to include
-       extension from the builddir.
-
-2005-09-01  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-internal.h: HACK statically define BablDb *db,
-       for all internal translation units.
-
-2005-09-01  Øyvind Kolås  <pippin@gimp.org>
-
-       Added a 128 item hashtable to each object list.
-
-       * babl/Makefile.am: added new file 'babl-db.c'
-       * babl/babl-db.h: moved static function ...
-       * babl/babl-db.c: ... here in a new file, also implemented a hashing
-       optimization based on the strings of names.
-       * babl/babl-internal.h: changed API in base class templates.
-       * babl/babl-component.c,
-       * babl/babl-extension.c,
-       * babl/babl-fish.c,
-       * babl/babl-format.c,
-       * babl/babl-image.c,
-       * babl/babl-model.c,
-       * babl/babl-sampling.c,
-       * babl/babl-type.c: changed db_insert(..) to babl_db_insert(db, ...)
-
-       * babl/babl.c: added babl_fish_init ()
-
-2005-08-31  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: Changed ChangeLog link in NEWS section.
-
-2005-08-31  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-component.h,
-       * babl/babl-core.h,
-       * babl/babl-conversion.h,
-       * babl/babl-extension.h,
-       * babl/babl-format.h,
-       * babl/babl-instance.h,
-       * babl/babl-introspect.h,
-       * babl/babl-image.h,
-       * babl/babl-fish.h,
-       * babl/babl-model.h,
-       * babl/babl-sampling.h,
-       * babl/babl-sanity.h,
-       * babl/babl-type.h: DELETED
-       * babl/babl.h: defines moved from deleted headers. Added
-       documentation.
-       * babl/babl-internal.h: defines moved from deleted headers.
-
-       * babl/Makefile.am: Reflect above changes.
-       * babl/babl-classes.h: redefined conversion functions to return long,
-       and take number of pixels as long.
-       * babl/babl-component.c, 
-       * babl/babl-conversion.c,
-       * babl/babl-core.c,
-       * babl/babl-db.h,
-       * babl/babl-extension.c,
-       * babl/babl-fish.c, 
-       * babl/babl-format.c,
-       * babl/babl-image.c, 
-       * babl/babl-instance.h,
-       * babl/babl-internal.c,
-       * babl/babl-internal.h,
-       * babl/babl-introspect.c,
-       * babl/babl-memory.c, 
-       * babl/babl-model.c,
-       * babl/babl-sampling.c,
-       * babl/babl-sanity.c,
-       * babl/babl-type.c, 
-       * babl/babl.c,
-       * babl/base/model-cmyk.c,
-       * babl/base/model-gray.c, 
-       * babl/base/model-rgb.c, 
-       * babl/base/model-ycbcr.c,
-       * babl/base/type-float.c,
-       * babl/base/type-u16.c,
-       * babl/base/type-u8.c, 
-       * docs/index-static.html.in,
-       * extensions/CIE-Lab.c,
-       * extensions/naive-CMYK.c, 
-       * tests/babl-html-dump.c,
-       * tests/babl_class_name.c,
-       * tests/grayscale_to_rgb.c,
-       * tests/introspect.c,
-       * tests/models.c,
-       * tests/nop.c,
-       * tests/rgb_to_bgr.c,
-       * tests/rgb_to_ycbcr.c,
-       * tests/sanity.c,
-       * tests/srgb_to_lab_u8.c,
-       * tests/types.c: reflect changes in headers.
-
-2005-08-31  Øyvind Kolås  <pippin@gimp.org>
-
-       * Makefile.am,
-       * babl.pc.in,
-       * configure.ac,
-       * extensions/Makefile.in: Fixed build of extensions. (awaiting
-       fix of babl/babl-extension.c to use new #defines)
-
-2005-08-30  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/model-gray.c: 
-               (rgba_to_gray_alpha_premultiplied): fixed array index error.
-       * extensions/Makefile.in: Added -I../babl to include path.
-       * extensions/naive-CMYK.c: (init), (rgb_to_cmyk), (cmyk_to_rgb):
-               reordered the code, fixed a component swapping issue
-               discovered by tests/model.c
-
-2005-08-30  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/srgb_to_lab_u8.c: updated values.
-       * tests/types.c: rewritten.
-       * tests/models.c: added, a test to test that reference conversions
-       registered for a BablModel are symmetrical.
-       * tests/float_to_u8.c,
-       * tests/u8_to_float.c,
-       * tests/rgb_to_lab_to_rgb.c,
-       * tests/rgb_to_ycbcr_to_rgb.c: removed.
-       * tests/Makefile.am: updated.
-
-2005-08-30  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-introspect.c:
-               (model_introspect), 
-               (format_introspect),
-               (each_introspect): use double quotes for strings.
-               (conversion_introspect): new, show instrumentation data.
-               (fish_introspect): new, show instrumentation data.
-
-2005-08-30  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: Added instrumentation variables to
-       BablConversion and BablFish.
-       * babl/babl-conversion.c:
-               (babl_conversion_new): Handle re-registration.
-               (conversion_new),
-               (babl_conversion_process): instrumentation variables
-       * babl/babl-component.c:
-               (babl_component_new): Handle re-registration.
-       * babl/babl-extension.c: Code cleanup.
-               (babl_extension_base): Handle re-registration.
-               (babl_extension_load_dir): close dir handle when done.
-       * babl/babl-fish.c:
-               (create_name)
-               (babl_fish_new): instrumentation variables, autogenerated
-               name.
-               (babl_fish_reference_new): instrumentation variables,
-               autogenerated name.
-               (babl_process): instrumentation variables.
-               (babl_conversion_find): use the lists of the source type for
-               the search (speed improvement).
-               (babl_fish): 
-               (process_same_model): reference process with fewer steps.
-               (babl_fish_reference_process): use fast path when models are
-               the same.
-       * babl/babl-format.c: (babl_format_new): Handle re-registration.
-       * babl/babl-model.c: (babl_model_new): handle re-registration.
-       * babl/babl-type.c: (babl_type_new): handle re-registration.
-
-2005-08-30  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-memory.c: (babl_free): freeing of non babl allocated
-       memory is fatal.
-
-2005-08-29  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/types.c: added test that tests the symmetry of reference
-       conversions for registered types.
-
-2005-08-29  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-format.c: (each_babl_format_destroy), (format_new),
-       (create_name), (babl_format_new): New API, name is now a key/value
-       pair, and if not set the name will be autogenerated.
-       * babl/base/model-rgb.c, 
-       * babl/base/model-ycbcr.c, 
-       * extensions/CIE-Lab.c, 
-       * extensions/naive-CMYK.c, 
-       * tests/Makefile.am,
-       * tests/float_to_u8.c,
-       * tests/grayscale_to_rgb.c, 
-       * tests/rgb_to_bgr.c, 
-       * tests/rgb_to_lab_to_rgb.c, 
-       * tests/rgb_to_ycbcr.c, 
-       * tests/rgb_to_ycbcr_to_rgb.c, 
-       * tests/u8_to_float.c: update to new API.
-
-2005-08-29  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-db.h: Do nor warn about collision during db_insert
-       * babl/babl-extension.[ch]: Implemented fs traversal based on BABL_PATH.
-       added babl_set_extender to API.
-       * babl/babl-instance.h: Changed signature of type_name##_new.
-       * babl/babl-introspect.c: (babl_introspect): use new babl_extender
-
-2005-08-29  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-internal.c: (babl_internal_init): set memory functions.
-       * babl/babl-memory.c: (babl_set_malloc), (babl_set_free),
-       (functions_sanity), (babl_malloc), (babl_free), (babl_realloc),
-       (babl_calloc), (babl_sizeof), (babl_strdup), (babl_strcat),
-       (babl_memory_sanity),
-       * babl/babl-memory.h: Added babl_str* functions, that behave slightly
-       different from the standard ones.
-       * babl/babl-util.c: (babl_add_ptr_to_list): made error fatal.
-       * babl/babl.c: (babl_init), (babl_destroy): added babl_internal
-
-2005-08-28  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-internal.[ch]: (babl_die): A function to call from
-       babl_fatal (...), invokes commands resulting in a backtrace, thus
-       giving context to where things broke.
-       * babl/babl-component.c: (babl_component_new):
-       * babl/babl-conversion.c: (babl_conversion_new):
-       * babl/babl-fish.c: (babl_conversion_find):
-       * babl/babl-format.c: (format_new), (babl_format_new):
-       * babl/babl-model.c: (babl_model_new):
-       * babl/babl-type.c: (babl_type_new): use babl_fatal() instead of
-       babl_log () on API mistakes.
-
-2005-08-28  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-pixel-format.c: removed
-       * babl/babl-format.c: readded under new name.
-
-       * babl/babl-pixel-format.h: removed
-       * babl/babl-format.h: readded under new name.
-
-       * babl/babl-classes.c: removed
-       * babl/babl-internal.c: readded under new name.
-
-       * babl/babl.h,
-       * babl/Makefile.am,
-       * babl/babl-fish.c: Accomodate changes.
-
-2005-08-28  Øyvind Kolås  <pippin@gimp.org>
-
-
-       * babl/babl-component.c: (babl_component_new): s/parameter/argument/
-
-       * babl/babl-extension.[ch]: the extension class.
-       * babl/babl-model.c: (create_name), (babl_model_new): generate
-       automatic name, allow override with key/value pair.
-       s/parameter/argument/
-       * babl/babl-pixel-format.c: (babl_format_new): s/parameter/argument/
-       * babl/babl-sampling.c: (babl_sampling): s/parameter/argument/
-       * babl/babl-type.c: (babl_type_new): s/paramter/argument/
-       * babl/babl-conversion.c, (create_name), (babl_conversion_new):
-       * babl/babl-conversion.h: Changed API, first two parameters are now
-       source and destination.
-       * babl/babl-instance.h: Added _NO_NEW variation of declarative name.
-       * babl/babl-internal.h: exit (-1) when a name lookup fails.
-
-       * babl/babl.h: do not export babl-ids.h 
-
-       * babl/base/Makefile.am: Files removed
-       * babl/base/babl-base.c: (models): removed model-lab
-       * babl/base/cpercep.[ch],
-       * babl/base/models.c,
-       * babl/base/model-lab.c,
-       * babl/base/types.c: removed
-
-       * babl/base/model-gray.c,
-       * babl/base/model-rgb.c,
-       * babl/base/model-ycbcr.c:
-               (models), (conversions): changed to new model_new and
-               conversion_new api.
-
-       * babl/base/type-float.c, 
-       * babl/base/type-u16.c, 
-       * babl/base/type-u8.c: new conversion API
-
-
-       * configure.ac,
-       * Makefile.am: added extensions subdir
-       * extensions/Makefile.in: NB: hard-coded installpath to
-       /home/pippin/.babl/
-       * extensions/CIE-Lab.c: moved here from BablBase, contains cpercep.c
-       and cpercep.h
-       * extensions/naive-CMYK.c: moved here from BablBase.
-       * extensions/util.h: convenience functions for babl extensions.
-
-       * babl/babl-core.[ch]: double and RGBA originating from BablBase.
-
-       * docs/index-static.html.in: updated TODO list.
-
-       * tests/float_to_u8.c, 
-       * tests/grayscale_to_rgb.c, 
-       * tests/rgb_to_bgr.c, 
-       * tests/rgb_to_lab_to_rgb.c, 
-       * tests/rgb_to_ycbcr.c,
-       * tests/rgb_to_ycbcr_to_rgb.c, 
-       * tests/srgb_to_lab_u8.c, 
-       * tests/u8_to_float.c: follow naming changed.
-
-2005-08-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * Makefile.am:
-       * babl.pc.in: added -dl
-       * babl/babl-classes.c: Added BablExtension to string list of types.
-       * babl/babl-classes.h: Added BablExtension, some reordering in union.
-       * babl/babl-conversion.c:
-               (create_name), (babl_conversion_new): compute the name of the
-               conversion instead of explicitly having to provide it.
-       * babl/babl-core.c:
-               (convert_double_double), (copy_strip_1),
-               (babl_core_init): Moved double datatype and RGBA model from
-               base into core.
-       * babl/babl-core.h: new file
-       * babl/babl-db.h: improved logging, print current extender as well.
-       * babl/babl-ids.h: removed some non central ids.
-       * babl/babl-internal.h: new varargs based logger.
-       * babl/babl-introspect.c: (babl_introspect): use quiet "fake"
-       extender. Allow introspection of single objects.
-       * babl/babl-introspect.h: Allow introspection of single objects.
-       * babl/babl-memory.c: (babl_memory_sanity): use babl_log instead of
-       fprintf.
-       * babl/babl-sanity.c: (id_sanity): only complain about id==0 in
-       BablBase / BablCore.
-       * babl/babl.c: (babl_init), (babl_destroy): added core and extension
-       to build up/tear down lists.
-       * babl/babl.h: removed babl_introspect which doesn't belong here
-       anymore.
-       * babl/base/Makefile.am: Removed type-double.c
-       * babl/base/babl-base.c: (types), (models): removed
-       babl_base_type_double ()
-       * babl/base/model-rgb.c: (components), (models): removed RGBA model.
-       * babl/base/type-double.c: removed
-       
-       * docs/index-static.html.in:
-       * tests/Makefile.am: LDADD += -ldl 
-       * tests/introspect.c: (main): pass NULL as argument to
-       babl_introspect () to do full objectspace traversal.
-
-       * babl/babl-fish.h:
-       * babl/babl-model.h:
-       * babl/babl-pixel-format.h:
-       * babl/babl-sampling.h:
-       * babl/babl-conversion.h:
-       * babl/babl-component.h: cosmetic rearrangement of lines.
-
-2005-08-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-component.c: (babl_component_new):
-       * babl/babl-conversion.c: (conversion_new), (babl_conversion_new),
-       (babl_conversion_process):
-       * babl/babl-db.h:
-       * babl/babl-fish.c: (babl_conversion_find), (babl_fish),
-       (babl_fish_reference_process), (babl_fish_process), (babl_process):
-       * babl/babl-image.c: (babl_image_from_linear), (babl_image):
-       * babl/babl-internal.h:
-       * babl/babl-introspect.c: (babl_introspect), (model_introspect):
-       * babl/babl-memory.c: (babl_malloc), (babl_strdup), (babl_realloc),
-       (babl_calloc):
-       * babl/babl-model.c: (babl_model_new):
-       * babl/babl-pixel-format.c: (format_new), (babl_format_new):
-       * babl/babl-type.c: (babl_type_new):
-       * babl/babl-util.c: (babl_add_ptr_to_list):
-       * babl/base/type-u8.c:
-       * tests/babl_class_name.c: (test): 
-
-       Made babl_log(...) print the file, line and function by itself.
-
-2005-08-27  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/graphics/Makefile.am: s/INSCAPE/INKSCAPE/
-
-2005-08-27  Sven Neumann  <sven@gimp.org>
-
-       * configure.ac
-       * Makefile.am
-       * docs/Makefile.am
-       * docs/graphics/Makefile.am: check for inkscape and w3m which are
-       needed to build the documentation. Compile without them but bail
-       out on 'make dist'.
-
-2005-08-26  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/rgb_to_bgr.c: added component shuffling test
-       * tests/Makefile.am: added rgb_to_bgr to TESTS
-
-2005-08-25  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: removed done things from TODO list.
-
-2005-08-25  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish.c:
-               (babl_to_double),(babl_from_double): new functions.
-               (babl_fish_reference_process): made type a component
-               shuffling work for linear buffers
-       * tests/rgb_to_lab_u8.c: filled in calculated values.
-
-2005-08-25  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/rgb_to_ycbcr.c,
-       * tests/rgb_to_ycbcr_to_rgb.c: fix Y' component name
-
-2005-08-25  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h:
-               BablFormat: added .bytes_per_pixel
-               BablImage: s/bands/components/
-       * babl/babl-conversion.c: s/bands/components/
-       * babl/babl-image.c: s/bands/components/
-       * babl/babl-pixel-format.c: (format_new) check if provided pixel
-       format matches model. Calculate .bytes_per_pixel.
-       * tests/babl-html-dump.c: use format.bytes_per_pixel
-
-2005-08-25  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h:
-               BablModel: added .type
-               BablFormat: reordered
-               BablImage: added .format, .model, .sampling and .type
-               BablFishReference: removed implementation details
-       * babl/babl-component.c: (component_new): use malloc instead of calloc
-       * babl/babl-conversion.c:
-               (conversion_new): use malloc instead of calloc
-               (babl_conversion_linear_process)
-               (babl_conversion_process):  pass pitch to functions.
-               (babl_conversion_planar_process): duplicate data pointers in
-               image before passing them on.
-       * babl/babl-db.h:
-               (db_each): indentation fix.
-       * babl/babl-fish.c:
-               (babl_fish_reference_new),
-               (babl_fish_reference_process),
-               (babl_fish_process), (babl_process): restructuring of the
-               reference bablfish, approaching data and component shuffling
-               functionality.
-       * babl/babl-image.c:
-               (image_new): use malloc instead of calloc
-               (babl_image_from_linear), (babl_image): Added more information
-               to structure.
-       * babl/babl-image.h: s/_new//
-       * babl/babl-internal.h: #define BABL_MAX_COMPONENTS 32
-       * babl/babl-introspect.c:
-               (format_introspect): s/bands/components/
-       * babl/babl-model.c:
-               (model_new): use malloc instead of calloc
-       * babl/babl-pixel-format.c:
-               (format_new): use malloc instead of calloc
-               (babl_format_new): s/bands/components/
-       * babl/babl-type.c:
-               (type_new): use malloc instead of calloc
-
-
-       * babl/base/type-double.c,
-       * babl/base/type-float.c,
-       * babl/base/type-u16.c,
-       * babl/base/type-u8.c: more parameters to conversion functions, added
-       a codewriting macro for different scale / min/max factors.
-
-       * docs/index-static.html.in: reindent.
-       * tests/babl-html-dump.c: (format_html): s/bands/components/
-       * tests/srgb_to_lab_u8.c: (test): use absolute error in check.
-
-2005-08-24  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/sanity.c: Added a test that fails if the internal sanity
-       checks are failing.
-
-2005-08-24  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.c,
-       * babl/babl-classes.h,
-       * babl/babl-component.c,
-       * babl/babl-conversion.c,
-       * babl/babl-db.h,
-       * babl/babl-fish.c,
-       * babl/babl-fish.h,
-       * babl/babl-image.c,
-       * babl/babl-image.h,
-       * babl/babl-internal.h,
-       * babl/babl-introspect.c,
-       * babl/babl-model.c,
-       * babl/babl-model.h,
-       * babl/babl-pixel-format.c,
-       * babl/babl-pixel-format.h,
-       * babl/babl-sanity.c,
-       * babl/babl-sanity.h,
-       * babl/babl-type.c,
-       * babl/babl.c,
-       * babl/babl.h,
-       * babl/base/model-cmyk.c,
-       * babl/base/model-gray.c,
-       * babl/base/model-lab.c,
-       * babl/base/model-rgb.c,
-       * babl/base/model-ycbcr.c,
-       * tests/Makefile.am,
-       * tests/babl-html-dump.c,
-       * tests/babl_class_name.c,
-       * tests/float_to_u8.c,
-       * tests/grayscale_to_rgb.c,
-       * tests/rgb_to_lab_to_rgb.c,
-       * tests/rgb_to_ycbcr.c,
-       * tests/rgb_to_ycbcr_to_rgb.c,
-       * tests/u8_to_float.c: s/PixelFormat/Format/ (etc in other cases),
-       Made BablFish be more polymorphic (accept
-       format names as well as BablFormats).
-       * babl/babl-ids.h: reorganized, some renames. 
-
-       * tests/srgb_to_lab_u8.c: new test for 8bit CIE Lab format (reference
-       data not correct yet).
-
-       * babl/base/type-u16.c,
-       * babl/base/type-u8.c: Added CIE fixed point data types.
-
-
-2005-08-24  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/babl.css: Added code highlighting classes.
-
-2005-08-24  Øyvind Kolås  <pippin@gimp.org>
-
-       * NEWS: remove draft for news release, at initial release everything
-       will be new.
-
-2005-08-23  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/Makefile.am: use `tempfile` to create name of temporary file
-       * docs/tools/xml_insert.sh: use `tempfile` to create name of temporary
-       file.
-
-2005-08-23  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.c,
-       * babl/babl-classes.h,
-       * babl/babl-conversion.c,
-       * babl/babl-fish.h,
-       * babl/babl-image.c,
-       * babl/babl-image.h,
-       * babl/babl-instance.h: Indentation, comments and other cleanup.
-
-2005-08-23  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/index-static.html.in: update webdocs.
-
-2005-08-23  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-instance.h: babl_class_name is moved to babl-classes.h
-       * babl/babl-conversion.h: add a method to the conversion class for the
-       processing with registered functions.
-       * babl/babl-fish.c: Use above functions.
-
-2005-08-23  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-memory.[ch]: added additonal sanity checking (only
-       handling babl-memory allocated memory in free and realloc.) And added
-       new function babl_dup (void*), which duplicates an allocation.
-       * babl/babl-db.h: have an initial database size.
-
-2005-08-23  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.c: Update class names to be in sync with enum in
-       babl-classes.h
-
-2005-08-23  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl.c: implement ref counting to avoid unneccesary destruction
-       of static data when multiple instances of babl is used in an
-       adressspace.
-
-2005-08-23  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/Makefile.am:
-       * tests/babl_class_name.c: new test.
-
-2005-08-22  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: (BabPixelFormat): only a single BablModel.
-       * babl/babl-pixel-format.h,
-       * tests/babl-html-dump.c: accomodate change.
-
-2005-08-21  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/.cvsignore: added Makefile and Makefile.in
-       * docs/graphics/.cvsignore: added Makefile and Makefile.in
-       * tests/.cvsignore: added babl_html_dump
-
-2005-08-21  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/Makefile.am: Typo, s/babl-grays/babl-gray/
-
-2005-08-21  Øyvind Kolås  <pippin@gimp.org>
-
-       * docs/Makefile.am: Changed which html file is piped through w3m to
-       generate README.
-
-2005-08-21  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/model-grayscale.c: removed
-       * babl/base/model-gray.c: added
-       * babl/base/Makefile.am:
-       * docs/graphics/index.html: fixed spelling.
-
-2005-08-21  Øyvind Kolås  <pippin@gimp.org>
-       
-       * docs/LGPL: added (hopefully as a link to ../COPYING)
-
-2005-08-21  Øyvind Kolås  <pippin@gimp.org>
-
-       * Makefile.am,
-       * NEWS,
-       * autogen.sh,
-       * babl/Makefile.am,
-       * configure.ac,
-       * docs/.cvsignore,
-       * docs/Makefile.am,
-       * docs/babl.css,
-       * docs/graphics/.cvsignore,
-       * docs/graphics/Makefile.am,
-       * docs/graphics/babl-16x16.svg,
-       * docs/graphics/babl-48x48.svg,
-       * docs/graphics/babl-a4poster.svg,
-       * docs/graphics/index.html,
-       * README.in,
-       * docs/index-static.html.in,
-       * docs/tools/xml_insert.sh,
-       * tests/babl-html-dump.c, 
-       * tests/Makefile.am: Added HTML based documentation as part of build
-       process.
-
-2005-08-21  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: reindent, some documentation.
-       * babl/babl-fish.c: (babl_fish_reference_new): assertions for
-       arguments.
-       * babl/babl-ids.h: cleanup.
-       * babl/base/babl-base.c: (models): grayscale->gray
-       * babl/base/model-grayscale.c: (babl_base_model_gray),
-       (components), (models), (rgb_to_gray), (rgb_to_gray_2_2),
-       (gray_2_2_to_rgb), (gray_to_rgb),
-       (gray_alpha_premultiplied_to_rgba),
-       (rgba_to_gray_alpha_premultiplied), (conversions): grayscale->gray,
-       added gamma-2.2 with alpha.
-       * babl/base/model-lab.c: 
-       * babl/base/model-rgb.c: 
-       * babl/base/model-ycbcr.c: Name normalizations
-       * tests/float_to_u8.c: (test_float_to_rgb_u8):
-       * tests/grayscale_to_rgb.c: (test):
-       * tests/rgb_to_lab_to_rgb.c: (test):
-       * tests/rgb_to_ycbcr.c: (test):
-       * tests/rgb_to_ycbcr_to_rgb.c: (test):
-       * tests/u8_to_float.c: (test): Name synchronization.
-
-2005-08-18  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/util.h: added new and hopefully correct gamma correction
-       and uncorrection functions.
-       * babl/base/model-grayscale.c: (components),
-       (rgb_to_grayscale_2_2), (grayscale_2_2_to_rgb): register
-       "luminance-gamma2.2" component, and use new gamma functions.
-       * babl/base/model-rgb.c: (g3_gamma_2_2), (g3_inv_gamma_2_2): use new
-       gamma functions.
-       * babl/base/model-ycbcr.c: (components), (models), (rgb_to_ycbcr),
-       (ycbcr_to_rgb): use gamma corrected luminance, and correct gamma. (pixel_formats):
-       uncomment until a new data type exist with headroom/footrom in 8bit
-       for proper rescaling of 0..255 to 16..235 for luma and  +/-112 range
-       with offset of 128 for chroma (16 thorugh 240 inclusive).
-       * babl/base/rgb-constants.h: more digits as well as some #if 0' dead
-       code for reference.
-       * tests/rgb_to_lab_to_rgb.c: add more colors to the test buffer.
-       * tests/rgb_to_ycbcr.c: set TOLERANCE to a more meaningful value,
-       updated the ycbcr version of 50% gray.
-
-2005-08-17  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-internal.h: (type_name##_id) babl_log upon failed
-       lookups.
-
-2005-08-17  Øyvind Kolås  <pippin@gimp.org>
-
-       * Makefile-mini
-       * babl/Makefile-mini: removed
-
-2005-08-17  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: added babl/Makefile to AC_CONFIG_FILES().
-
-2005-08-17  Sven Neumann  <sven@gimp.org>
-
-       * README.in: spelling.
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/pixel-formats.c: removed
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-model.c: (model_new)
-       * babl/babl-pixel-format.c: (pixel_format_new): reordered allocation
-       to place string (to avoid placing pointers in non aligned adresses).
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-component.c: (component_new, each_babl_component_destroy) allocate
-       larger chunk, (babl_component_new) removed Babl* switch, 
-       * babl/babl-conversion.c: (conversion_new): removed superflous runtime
-       warnings.
-       * babl/babl-fish.c: (babl_fish_process): reindent, added assert for
-       instance.
-       * babl/babl-image.c: (image_new, babl_image_new): reindent,
-       , (babl_image_new_from_linear): added asserts for parameters.
-       * babl/babl-model.c: (each_babl_model_destroy, model_new): allocate
-       larger chunk.
-       * babl/babl-pixel-format.c: (each_babl_pixel_format_destroy,
-       pixel_format_new): allocate larger chunk.
-       * babl/babl-sanity.c: (babl_conversion_source): removed FIXME comment
-       used for helper function just used to make code more readable.
-       * babl/babl-type.c: (each_babl_type_destroy, type_new): allocate
-       larger chunk.
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-classes.h: (BablSampling) added static name.
-       * babl/babl-sampling.c: (babl_sampling_init): initialize names
-       * babl/babl-introspect.c: (pixel_format_introspect): display sampling
-       name as well.
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-component.[ch]
-       * babl/babl-conversion.[ch]
-       * babl/babl-fish.[ch]
-       * babl/babl-image.[ch]
-       * babl/babl-instance.h
-       * babl/babl-internal.h
-       * babl/babl-introspect.c
-       * babl/babl-model.[ch] 
-       * babl/babl-pixel-format.[ch]
-       * babl/babl-sampling.[ch] 
-       * babl/babl-sanity.c 
-       * babl/babl-type.[ch] 
-       * tests/float_to_u8.c 
-       * tests/grayscale_to_rgb.c
-       * tests/rgb_to_lab_to_rgb.c
-       * tests/rgb_to_ycbcr.c
-       * tests/rgb_to_ycbcr_to_rgb.c
-       * tests/u8_to_float.c: Changed to use polymorph Babl * union's instead
-       of class specific structs in most cases, and in all cases for the
-       public API.
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-       
-       * AUTHORS: Fixed spelling of Sven Neumann.
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * tests/.cvsignore: added the test binaries.
-       * .cvsignore: added *.tar.gz and *.tar.bz2
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * AUTHORS: added Sven Neuman.
-
-2005-08-16  Sven Neumann  <sven@gimp.org>
-
-       * configure.ac: add -Wall to CFLAGS if gcc is being used. Use
-       AC_CONFIG_FILES() to define the files that need to be generated.
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/mode-ycbcr.c: use coefficients from Charles Poyntons color
-       FAQ.
-       * tests/rgb_to_ycbcr_to_rgb.c: changed TOLERANCE to 0.00000000000001
-       * tests/rgb_to_ycbcr.c: changed TOLERANCE as well as reference values.
-
-2005-08-16  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-fish.c: reindentation, no naming of fishes.
-       * babl/babl-ids.h: reordering, added YCBCRA, LAB and LAB_ALPHA
-       * babl/base/Makefile.am: added cpercep.[ch] model-lab.c and
-       model-ycbcr.c
-       * babl/base/cpercep.[ch]: *NEW*
-       * babl/base/model-lab.c: *NEW* CIE Lab color model, backed by a slightly
-       modified version of cpercep from gimp sources (no gamma correction and
-       normalized RGB values)
-       * babl/base/model-ycbcr: made ycbcr work, numbers still need to be
-       verified.
-       * babl/base/babl-base.c: initialize CIE Lab and YCbCr
-       * babl/base/model-cmyk.c: slight changes, it still doesn't pass
-       rgb->cmyk->rgb testing so not included yet.
-       * babl/base/model-rgb.c: make rgba-double use BABL_DOUBLE instead of
-       BABL_FLOAT
-       * babl/base/type-u16: fix conversion to double.
-       * tests/Makefile.am: added rgb_to_lab_to_rgb , rgb_to_ycbcr_to_rgb and
-       rgb_to_ycbcr
-       * tests/rgb_to_lab_to_rgb.c
-       * tests/rgb_to_ycbcr_to_rgb.c
-       * tests/rgb_to_ycbcr.c: *NEW* tests
-
-2005-08-15  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/base/model-cmyk.c
-       * babl/base/model-ycbcr.c: added stubs
-
-2005-08-15  Øyvind Kolås  <pippin@gimp.org>
-
-       * configure.ac: add rule to generate babl/base/Makefile
-       * babl/base: new directory
-       * babl/base/Makefile.am
-       * babl/base/babl-base.[ch]
-       * babl/base/type-double.c
-       * babl/base/type-float.c
-       * babl/base/type-u8.c
-       * babl/base/type-u16.c
-       * babl/base/model-rgb.c
-       * babl/base/model-grayscale.c
-       * babl/base/.cvsignore: added code removed in previous commit, in
-       a more oragnised manner.
-       
-
-2005-08-15  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-base/babl-base.[ch]
-       * babl/babl-base/babl-base-components.c
-       * babl/babl-base/babl-base-conversions.c
-       * babl/babl-base/babl-base-conversions-model.c
-       * babl/babl-base/babl-base-conversions-type.c
-       * babl/babl-base/babl-base-models.c
-       * babl/babl-base/babl-base-pixel-formats.c
-       * babl/babl-base/babl-base-types.c
-       * babl/babl-base/Makefile.am
-       * babl/babl-base/: removed
-
-2005-08-15  Øyvind Kolås  <pippin@gimp.org>
-       
-       * babl/babl-classes.h: BablPixelFormat: changed order of attributes to
-       match BablModel. BablFish: removed **from and **to lists, since they
-       were added at a wrong offset from the instance start anyways.
-       * babl/babl-fish.c: Made the reference fish work for linear buffers
-       with constant datatype
-       * babl/babl-ids.h: added BABL_RGBA_DOUBLE
-       * babl/babl-image.[ch]: made BablImage be allocated in a single chunk,
-       added babl_image_new_from_linear()
-       * babl/babl-type.c: added assertion about bits%8==0
-       * babl/babl-base/babl-base-conversions-model.c: made BABL_PLANAR_SANITY accept
-       single band buffers. added conversions for premultiplied grayscale.
-       * babl/babl-base/babl-base-pixel-formats.c: added "rgba-double"
-
-2005-08-15  Øyvind Kolås  <pippin@gimp.org>
-
-       * Makefile-mini: compile both the nop and introspect programs by
-       default.
-       * babl/Makefile-mini: link with standard math library
-
-2005-08-14  Øyvind Kolås  <pippin@gimp.org>
-       
-       * tests/float_to_u8.c
-       * tests/u8_to_float.c
-       * tests/grayscale_to_rgb.c: new files
-       * tests/Makefile.am: including preceding tests
-
-2005-08-14  Øyvind Kolås  <pippin@gimp.org>
-       
-       * babl/Makefile.am: added babl-instance.h, removed wilcard from
-       EXTRA_DIST
-       * babl/babl-classes.h: added BablModel **model to BablPixelFormat,
-       renamed BablReferenceFish to BablFishReference. Moved some logic out
-       to babl-instance.h.
-       * babl/babl-instance.h: new file.
-       * babl/babl-db.h: include babl-instance instead of babl-classes to
-       reduce amount of headers included by headers.
-       * babl/babl-fish.c: Added code to make it work for type conversions
-       * babl/babl-fish.h: Added babl_fish (source, destination) prototype
-       * babl/babl-internal.h: reindentation, include babl-conversion.h
-       * babl/babl-pixel-format.c: add model for each band
-       * babl/babl.c: destroy all fishes at finish
-
-2005-08-14  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-base/Makefile.am: LDADD = -lm
-       * babl/babl-base/babl-base-conversions-model.c: reindentation, added
-       gamma functions.
-       * babl/babl-base/babl-base-conversions-type.c: corrected reference
-       versions of u8, u16 and float.
-       * babl/babl-base/babl-base-models.c: ifdef'ed out some of the more
-       arcane models.
-       * babl/babl-base/babl-base-pixel-formats.c: added the corresponding
-       model used to all pixel formats.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/Makefile-mini: CFLAGS = -Werror -Wall ....
-       * babl/babl-classes.[ch]: BablPixelFormat removed unused pointers
-       to lists of conversions. Added BablReferenceFish. Renamed kind/
-       instance.type to class_type/instance.class_type. Removed mostly
-       unused macro's and expanded them in source
-
-       * babl/babl-component.c
-       * babl/babl-conversion.c
-       * babl/babl-db.h
-       * babl/babl-fish.c
-       * babl/babl-image.c
-       * babl/babl-introspect.c
-       * babl/babl-model.c
-       * babl/babl-pixel-format.c
-       * babl/babl-sampling.c
-
-       * babl/babl-type.c: removed switch statement since all enums are
-       handled equally.
-
-       * babl/tests/Makefile.am: added nop and introspect to TESTS, not
-       actual tests yet, but at least a segfault will cause make check to
-       fail.
-       
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * autogen.sh: make autogen also run make
-       * babl/babl-classes.h: added define macro usable for sampling and
-       fish.
-       * babl/babl-fish.[ch]: cleanup of stub class
-       * babl/babl-sampling.h: simplification of header using a define.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-conversion.c: indentation cleanup.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-ids: added BABL_LUMINANCE_GAMMA_2_2,
-       BABL_LUMINANCE_MUL_ALPHA, BABL_GRAYSCALE_GAMMA_2_2,
-       BABL_GRAYSCALE_ALPHA_PREMULTIPLIED.
-       * babl/babl-base/babl-base-components: added "luminance*alpha"
-       * babl/babl-base/babl-base-components.conversions-model.c: Sprinked
-       asserts, added generic premultiplification operation.
-       * babl/babl-base-models.c: added gamma corrected and premultiplied
-       variations of grayscale.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-internal.h: issue a babl_log when the named object is not
-       found during string based lookup.
-       * babl/babl-pixel-format.c: added BABL_IMAGE to var_args switch.
-       * babl/babl-classes.c: set babl_hmpf_on_name_lookups initial value to
-       0, to make it hmpf only in babl-base.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/Makefile-mini: added babl-image.o.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/babl-sampling.h: removed reference to non existant function
-       babl_sampling_introspect ().
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * babl/Makefile.am
-       * babl/babl-image.c
-       * babl/babl-image.h
-       * babl/babl-classes.h: Added BablImage class.
-
-       * babl/babl-component.c
-       * babl/babl-conversion.c
-       * babl/babl-model.c: Handle BABL_IMAGE in switches.
-
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * .cvsignore: added INSTALL and README.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       * depcomp
-       * install-sh
-       * missing: erroniously included in first import.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       Imported into GNOME CVS.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       - seperate babl-base into separate subdir.
-
-2005-08-09  Øyvind Kolås  <pippin@gimp.org>
-
-       - Renamed class to model.
-       - Auto toolification
-
-2005-08-08  Øyvind Kolås  <pippin@gimp.org>
-
-       - Completed data model
-       - Added sanity checker
-
-2005-08-07  Øyvind Kolås  <pippin@gimp.org>
-
-       - Introspection
-
-2005-08-05  Øyvind Kolås  <pippin@gimp.org>
-
-       - Initial ChangeLog
-
-2005-07-31  Øyvind Kolås  <pippin@gimp.org>
-
-       - Type system
-
-2005-07-29  Øyvind Kolås  <pippin@gimp.org>
-
-       - Babl's inception in the 'Chaos Village' at WhatTheHack.
-
diff --git a/INSTALL b/INSTALL
index 5212bd47dfd372bf516d8d98a3e1b3c2555fdde6..799229539732ec03c971eb2b255213bbb852c2cb 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-babl 0.1.8
+babl 0.1.10
 
     Dynamic; any to any, pixel format conversion library.
 
@@ -12,10 +12,10 @@ From a released version the following is the expected method of
 installation (or a variation on this theme):
 
      ------------------------------------------------------------
-     foo$ wget ftp://ftp.gtk.org/pub/babl/0.1/babl-0.1.8.tar.bz2
-     foo$ tar jxf babl-0.1.8.tar.gz
-     foo$ cd babl-0.1.8
-     foo/babl-0.1.8$ ./configure && make && sudo make install
+     foo$ wget ftp://ftp.gtk.org/pub/babl/0.1/babl-0.1.10.tar.bz2
+     foo$ tar jxf babl-0.1.10.tar.gz
+     foo$ cd babl-0.1.10
+     foo/babl-0.1.10$ ./configure && make && sudo make install
      ------------------------------------------------------------
 
 
index 840872ef38e5cdd5b9ca453e312ff70d8337dae5..19df3268c425dc41321d238b2b2266de5b96ce15 100644 (file)
@@ -14,13 +14,11 @@ built_dist_files = README
 
 EXTRA_DIST = \
        $(built_dist_files)     \
-       ChangeLog.pre-0-1       \
        AUTHORS                 \
        COPYING                 \
        INSTALL                 \
        NEWS                    \
        TODO                    \
-       ChangeLog               \
        autogen.sh              \
        m4/introspection.m4     \
        babl.pc.in
@@ -51,25 +49,3 @@ distclean-local:
                rm -f $(BUILT_EXTRA_DIST);      \
        fi
 
-
-
-### ChangeLog generation
-
-CHANGELOG_START = BABL_0_1_0
-
-ChangeLog: $(srcdir)/ChangeLog
-$(srcdir)/ChangeLog:
-       @echo Creating $@
-       @if test -d "$(srcdir)/.git"; then \
-         (GIT_DIR=$(top_srcdir)/.git ./missing --run \
-          git log $(CHANGELOG_START)^.. --stat) | fmt --split-only > $@.tmp \
-         && mv -f $@.tmp $@ \
-         || ($(RM) $@.tmp; \
-             echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
-             (test -f $@ || echo git-log is required to generate this file >> $@)); \
-       else \
-         test -f $@ || \
-         (echo A git checkout and git-log is required to generate ChangeLog >&2 && \
-         echo A git checkout and git-log is required to generate this file >> $@); \
-       fi
-.PHONY: $(srcdir)/ChangeLog
index dc9d63ef791b2772f70985a460bd9f7579aaf27a..ee7ae61c2a56ffad3b0b288d848be29f21981a4c 100644 (file)
@@ -311,13 +311,11 @@ pkgconfig_DATA = babl.pc
 built_dist_files = README
 EXTRA_DIST = \
        $(built_dist_files)     \
-       ChangeLog.pre-0-1       \
        AUTHORS                 \
        COPYING                 \
        INSTALL                 \
        NEWS                    \
        TODO                    \
-       ChangeLog               \
        autogen.sh              \
        m4/introspection.m4     \
        babl.pc.in
@@ -326,9 +324,6 @@ DISTCLEANFILES = \
        $(built_dist_files)     \
        babl.pc
 
-
-### ChangeLog generation
-CHANGELOG_START = BABL_0_1_0
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -887,23 +882,6 @@ distclean-local:
                rm -f $(BUILT_EXTRA_DIST);      \
        fi
 
-ChangeLog: $(srcdir)/ChangeLog
-$(srcdir)/ChangeLog:
-       @echo Creating $@
-       @if test -d "$(srcdir)/.git"; then \
-         (GIT_DIR=$(top_srcdir)/.git ./missing --run \
-          git log $(CHANGELOG_START)^.. --stat) | fmt --split-only > $@.tmp \
-         && mv -f $@.tmp $@ \
-         || ($(RM) $@.tmp; \
-             echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
-             (test -f $@ || echo git-log is required to generate this file >> $@)); \
-       else \
-         test -f $@ || \
-         (echo A git checkout and git-log is required to generate ChangeLog >&2 && \
-         echo A git checkout and git-log is required to generate this file >> $@); \
-       fi
-.PHONY: $(srcdir)/ChangeLog
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/NEWS b/NEWS
index 506c2f16d017f7630d7231bffbb90bf15a3e0c31..a123cc3de49bfe36b27be7218e2223aa34eda272 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,7 +5,9 @@ the news section both in the README and the webpage.
 
                                                                           -->
 
-
+2012-03-30 babl-0.1.8                                               </dt><dd>
+LUT based speedups for gamma correction / uncorrection.
+                                                                    </dd><dt>
 2012-03-30 babl-0.1.8                                               </dt><dd>
 Added support for indexed/pallette based formats, constified API.
                                                                     </dd><dt>
diff --git a/README b/README
index b205cb927046c5f7ddff9b989bcc18f25abe2b9d..1583b9518675a5e1bb15acccdb975838ab07eaef 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Babl-0.1.8
+Babl-0.1.10
 
 Contents
 
@@ -59,6 +59,8 @@ babl release. If there are significant improvements to babl when a GEGL
 release is done a babl release is most often put out just prior to the
 GEGL release.
 
+2012-03-30 babl-0.1.8
+    LUT based speedups for gamma correction / uncorrection.
 2012-03-30 babl-0.1.8
     Added support for indexed/pallette based formats, constified API.
 2011-11-18 babl-0.1.6
@@ -1220,19 +1222,6 @@ components
     u8 R'a
     u8 A
 
-B'aG'aR'aPAD u8
-
-bytes/pixel
-    4
-model
-    R'G'B'
-components
-
-    u8 B'
-    u8 G'
-    u8 R'
-    u8 PAD
-
 Shortcut Coverage
 
 The diagram shown below visualizes the coverage of current shortcut
@@ -1241,81 +1230,80 @@ height of the bar indicates the number of conversions steps needed in a
 chain of conversions. A DHTML version is also available.
 
 
-    ··  ·▁··   ··· ▁    ▂             ▁▁   ▁         ····         ·   ── 0 RGBA double
-                                                                      ── 1 RGB double
-                                                                      ── 2 RaGaBaA double
-                                                                      ── 3 R'G'B' double
-·    ▁  ▁▂▁▁   ▁▁▁ ·    ▁             ▂▂   ▂         ▁▁▁▁         ▁   ── 4 R'G'B'A double
-·       ▁▂▁▁   ▁▁       ▃             ▂▂   ▂         ▁▁▁▁         ▁   ── 5 R'aG'aB'aA double
-▂   ▂  ·▁·▃▃   ▃▃▂ ▁ ▁ ··             ▂▁ ▃ ▁         ▂▃▂▂         ▃   ── 6 R'G'B' u8
-▁   ▁▂  ·▁▂▂   ▂▂▂ · ▁  ▁             ▁▁   ▁         ▂▂▂▂         ▃   ── 7 R'G'B'A u8
-·   ▁▁   ·▁▁   ▁▁▁ ▂    ▃             ··   ·         ▁▁▁▁         ▁   ── 8 RGBA float
-▁   ▃▂    ▂▂   ▂▃▂ ▃                  ▂▁ ▂ ▁         ▂▂▂▂         ▂   ── 9 RGB float
-·   ▁▁  ▁  ▁   ▁▁▁ ▂ ▃  ▃             ▂▂ ▃ ▂         ▁▁▁▁         ▁   ──10 Y double
-·   ▁▁  ▁▂     ▁▁▁ ▂    ▃             ▂▂   ▂         ▁▁▁▁         ▁   ──11 YA double
-                                                                      ──12 YaA double
-                                                                      ──13 Y' double
-                                                                      ──14 Y'A double
-·   ▁▁  ▁▂▁▁    ▁▁ ▂    ▃             ▂▂   ▃         ▁▁▁▁         ▁   ──15 Y'aA double
-·   ▁▁  ▁▂▁▁     ▁ ▂ ▃  ▃             ▂▂ ▃ ▂         ▁▁▁▁         ▁   ──16 Y'CbCr double
-·   ▁▁  ▁▂▁▁   ▁   ▂    ▃             ▂▂   ▂         ▁▁▁▁         ▁   ──17 Y'CbCrA double
-                                                                      ──18 Y'CbCr u8
-▁   ·▂  ▂▃▂▂   ▂▂▂      ·             ▃▃   ▃         ▂▂▂          ▂   ──19 R'G'B'A float
-▂   ▁▃  ▃ ▃▃   ▃▃▃   ▁  ▁                            ▃▃▃▃         ▃   ──20 R'G'B'A u16
-                                                     ▃▃▃▃             ──21 R'aG'aB'aA float
-▃   ▂              ▁    ▂                                             ──22 R'aG'aB'aA u16
-▃   ▂              ▁ ·  ▂                                             ──23 R'aG'aB'aA u8
-▂   ▁▃  ▃ ▃▃   ▃▃▃ · ·                               ▃▃▃▃         ▃   ──24 R'G'B' float
-▃   ▂              ▂ ▁                                                ──25 R'G'B' u16
-    ▁              · ▁  ▁  ·· ▂  ▁                                    ──26 Y'A float
-    ▂              ▁ ·  ▂   ▁ ▁  ·                                    ──27 Y'aA float
-    ▂              ▁ ▁  · ·                                           ──28 Y' float
-    ▂              ▁ ▂  ▂ ·▂  ▃  ▂                                    ──29 Y'A u16
-    ▃              ▂ ▁  ▃ ▁·▂    ▁                                    ──30 Y'aA u16
-    ▃              ▂ ▂  ▁ ▁▂·                                         ──31 Y' u16
-▂   ▂▃  ·▂▃▂   ▂▂▂ ▁ ▂  ▂ ·▁▁ ▃  ▃    ▁▂   ▁·▁▁      ▃▃▃▂         ▂   ──32 Y'A u8
-    ▃              ▂ ▁  ▃ ▁·▂ ·                                       ──33 Y'aA u8
-▁   ▃▂  ▂▁▂▂   ▂▂▂ ▂ ▃  ▃ ▁▂·         ▁▃ ▂ ▃▁▂·      ▂▂▂▂         ▂   ──34 Y' u8
-▃   ▂              ▁ ▂  ·                                             ──35 Y'CbCr float
-▂   ▁▃  ▃ ▃▃   ▃▃  ·    ▁                            ▃▃▃▃         ▃   ──36 Y'CbCrA float
-▁   ▂▂  ·▁▂▂   ▂▂▂ ▃                  ▁▁   ▁         ▂▂▂▂         ▂   ──37 RGBA u16
-▁   ▂▂  ·▁▂▂   ▂▂▂ ▃                   ▁   ·         ▂▂▂▂         ▂   ──38 RGBA u8
-▁   ▂▂  ·▁▂▂   ▂▂▂ ▃                       ▁         ▂▂▂▂         ▂   ──39 RaGaBaA float
-▂   ▃▃  ▁▂▃▃   ▃▃▃                    ▂    ▂         ▃▃▃▃         ▃   ──40 RaGaBaA u16
-▂   ▃▃  ▁▂▃▃   ▃▃▃                     ·             ▃▃▃▃         ▃   ──41 RaGaBaA u8
-▃   ▃▃  ▂·▃▃   ▃▃▃                    ▃▁   ▂         ▃▃▃▃         ▃   ──42 RGB u16
-▂   ▃▂  ▁·▃▃   ▃▃▃ ▃                  ·▂ ·           ▃▃▃▂         ▃   ──43 RGB u8
-▁   ▂▂  ·▁▂    ▂▂▂ ▃                  ▁▁     ··      ▂▂▂▂         ▂   ──44 YA float
-▂   ▃▃  ▁▂▃▃   ▃▃▃                    ▂·   ▂         ▃▃▃▃         ▃   ──45 YaA float
-▂   ▃▃  ▁· ▃   ▃▃▃                    ▂▂ ▃ ▂·        ▃▃▃▃         ▃   ──46 Y float
-▂   ▃▃  ▁▂▃▃   ▃▃▃                    ▂▂   ▂·▁       ▃▃▃▃         ▃   ──47 YA u16
-▃       ▂▃                            ▃▁   ▃ ·                        ──48 YaA u16
-▃       ▂▁                            ▃▂   ▃▁▁·                       ──49 Y u16
-▂   ▂▂  ▁▂▃▃   ▃▃▃ ▃                  ▁▂   ▂·▁▁      ▃▃▃▂         ▃   ──50 YA u8
-▃       ▂▃                             ▁    ▁·▂                       ──51 YaA u8
-▃   ▂▂  ·▁▂▂   ▂▂▂ ▃                  ▁▃ ▂ ▃▁▂·      ▂▂▂▂         ▂   ──52 Y u8
-·   ▁▁  ▁▂▁▁   ▁▁▁ ▂ ▃  ▃             ▂▂ ▃ ▂          ▁▁▁         ▁   ──53 CIE Lab double
-·   ▁▁  ▁▂▁▁   ▁▁▁ ▂    ▃             ▂▂   ▂           ▁▁         ▁   ──54 CIE Lab alpha double
-·   ▁▁  ▁▂▁▁   ▁▁▁ ▂ ▃  ▃             ▃▂ ▃ ▂         ▁  ▁         ▁   ──55 CIE LCH(ab) double
-·   ▁▁  ▁▂▁▁   ▁▁▁ ▂    ▃             ▂▂   ▂         ▁▁           ▁   ──56 CIE LCH(ab) alpha double
-                                                                      ──57 CIE Lab float
-                                                                      ──58 CIE Lab alpha float
-                                                                      ──59 CIE Lab u8
-                                                                      ──60 CIE Lab u16
-                                                                      ──61 CIE LCH(ab) float
-                                                                      ──62 CIE LCH(ab) alpha float
-                                                                      ──63 cairo-ARGB32
-                                                                      ──64 cairo-RGB24
-                                                                      ──65 cairo-A8
-·   ▁▁  ▁▂▁▁    ▁▁ ▂ ▃  ▃             ▃▂ ▃ ▂         ▁▁▁▁             ──66 CMYK double
-                                                                      ──67 CMYK float
-                                                                      ──68 B'aG'aR'aA u8
-                                                                      ──69 B'aG'aR'aPAD u8
-||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-||||||||||111111111122222222223333333333444444444455555555556666666666
-0123456789012345678901234567890123456789012345678901234567890123456789
-total length: 2172
-total cost  : 408270
+    ··▂▂·▁··   ··· ▁ ▁  ▂             ▁▁   ▁         ····         ·  ── 0 RGBA double
+                                                                     ── 1 RGB double
+                                                                     ── 2 RaGaBaA double
+                                                                     ── 3 R'G'B' double
+·    ▁▁▁▁▂▁▁   ▁▁▁ · ▂  ▁             ▂▂   ▂         ▁▁▁▁         ▁  ── 4 R'G'B'A double
+·     ▃▃▁▂▁▁   ▁▁▁ ▂    ▃             ▂▂   ▂         ▁▁▁▁         ▁  ── 5 R'aG'aB'aA double
+▂   ▂  ··▂▃▃   ▂▃▂ ▁ ▁ ··             ▁▂ ▃ ▂         ▂▂▃▃         ▃  ── 6 R'G'B' u8
+▁   ▁▂  ·▁▃▂   ▃▃▂ · ▁  ▁             ▁▁   ▁         ▂▂▃▂         ▃  ── 7 R'G'B'A u8
+·   ▁▁▁  ·▁▁   ▁▁▁ ▂ ·  ▁             ··   ·         ▁▁▁▁         ▁  ── 8 RGBA float
+▁   ▂▂▂▂  ▂▂   ▂▂▂ ▃ ▁ ▃·             ▁· ▂ ▁         ▂▃▂▂         ▂  ── 9 RGB float
+·   ▁▁▃▃▁  ▁   ▁▁▁ ▂ ▃  ▃             ▂▂ ▃ ▂         ▁▁▁▁         ▁  ──10 Y double
+·   ▁▁▃▃▁▂     ▁▁▁ ▂ ▂  ▃             ▂▂   ▂         ▁▁▁▁         ▁  ──11 YA double
+                                                                     ──12 YaA double
+                                                                     ──13 Y' double
+                                                                     ──14 Y'A double
+·   ▁▁▃▃▁▂▁▁    ▁▁ ▂ ▂  ▃             ▂▂   ▂         ▁▁▁▁         ▁  ──15 Y'aA double
+·   ▁▁▃▃▁▂▁▁     ▁ ▂ ▃  ▃             ▃▂ ▃ ▂         ▁▁▁▁         ▁  ──16 Y'CbCr double
+    ▁▁▃▃▁▂▁▁   ▁   ▂ ▂  ▃             ▂▂   ▂         ▁▁▁▁         ▁  ──17 Y'CbCrA double
+                                                                     ──18 Y'CbCr u8
+▁   ·▂···▁▂▂   ▃▂▂   ▁  ·             ▁▁   ▃         ▂▂▂▂         ▂  ──19 R'G'B'A float
+▂   ▁▃▁▁▁▂▃▃   ▃▃▃   ▁  ▁             ▂▂   ▃         ▃▃▃▃         ▃  ──20 R'G'B'A u16
+      ▁▁                              ▂    ▃         ▃▃▃▃            ──21 R'aG'aB'aA float
+▃   ▂   ▂▃         ▁    ▂             ▃▃   ▃                         ──22 R'aG'aB'aA u16
+▃   ▂   ▂▃         ▁ ·  ▂             ▃▃   ▃                         ──23 R'aG'aB'aA u8
+▃   ▁▃▁▁▁▃▃▃   ▃▃▃ · ·                ▃▃ ▃ ▃         ▃▃▃▃         ▃  ──24 R'G'B' float
+▃   ▂ ▂▃▃▁         ▁ ▁ ▃              ▃▃   ▃                         ──25 R'G'B' u16
+    ▁ ▃▁           · ▁  ▁  ·· ▂  ▁                                   ──26 Y'A float
+    ▂ ▂▂           ▁ ·  ▂   ▁ ▁  ·                                   ──27 Y'aA float
+    ▂ ▂▂           ▁ ▂ ▃▃ ·                                          ──28 Y' float
+    ▂ ▂▂           ▁ ▂  ▂ ·▁  ▃  ▂                                   ──29 Y'A u16
+    ▃ ▃▃           ▂ ▁  ▃ ▁·▂    ▁                                   ──30 Y'aA u16
+    ▃ ▃▃           ▃ ▂  ▁ ▁▁·                                        ──31 Y' u16
+▂   ▂▂▂▂▁▁▃▃   ▂▃▂ ▁ ▂  ▂ ·▁▁ ▃  ▃    ▂▂   ▁·▁▁      ▂▃▂▂         ▂  ──32 Y'A u8
+    ▃              ▂ ▁  ▃ ▁·▂ ·                                      ──33 Y'aA u8
+▃   ▃▂▃▃▃▃▂▂   ▂▂▂ ▂ ▂ ▃▁ ▁▁·         ▃▃ ▂ ▁▁▂·      ▂▂▂▂         ▂  ──34 Y' u8
+▃   ▂ ▂▂▃▁         ▁ ▁ ▃·             ▃▃   ▃                         ──35 Y'CbCr float
+▂   ▁▃▁▁▁▂▃▃   ▃▃  · ▂  ▁             ▂▂   ▃         ▃▃▃▃         ▃  ──36 Y'CbCrA float
+▁   ▂▂▂▂·▁▂▂   ▂▂▂ ▁ ▁  ▂             ▁▁   ▁         ▂▂▂▂         ▂  ──37 RGBA u16
+▁   ▂▂▂▂·▁▂▂   ▂▂▂ ▁ ▁  ▂              ▁   ·         ▃▂▂▂         ▂  ──38 RGBA u8
+▁   ▂▂▂▂·▁▂▂   ▂▂▂ ▁ ▁  ▂                  ▁         ▂▂▂▂         ▂  ──39 RaGaBaA float
+▂   ▃▃▃▃▁▂▃▃   ▃▃▃ ▂ ▂  ▃             ▂    ▂         ▃▃▃▃         ▃  ──40 RaGaBaA u16
+▂   ▃▃▃▃▁▂▃▃   ▃▃▃ ▂ ▂  ▃              ·             ▃▃▃▃         ▃  ──41 RaGaBaA u8
+▂   ▃▃▃▃▁·▃▃   ▃▃▃ ▂ ▃  ▁             ▃▂   ▂         ▃▃▃▃         ▃  ──42 RGB u16
+▁   ▂▃▃▃▁·▂▃   ▃▃▂ ▂ ▃ ▃▁             ·▁ ·           ▃▃▃▃         ▃  ──43 RGB u8
+▁   ▂▂▂▂·▁▂    ▂▂▂ ▁ ▁  ▂             ▁▁     ··      ▂▂▂▂         ▂  ──44 YA float
+▂   ▃▃▃▃▁▂▃▃   ▃▃▃ ▂ ▂  ▃             ▂·   ▂         ▃▃▃▃         ▃  ──45 YaA float
+▂   ▃▃▃▃▃▂ ▃   ▃▃▃ ▂ ▂  ▃             ▂▂ ▃ ▂·        ▃▃▃▃         ▃  ──46 Y float
+▂   ▃▃▃▃▁▂▃▃   ▃▃▃ ▂ ▂  ▃             ▂▂   ▂·▁       ▃▃▃▃         ▃  ──47 YA u16
+▃       ▂▃         ▃ ▃                ▃▁   ▃ ·                       ──48 YaA u16
+▃       ▂▁         ▃ ▃  ▂             ▃▂   ▃▁▁·                      ──49 Y u16
+▁   ▃▃▃▃·▂▃▃   ▃▃▃ ▁ ▁  ▂             ▂▂   ▁·▁▁      ▃▂▃▃         ▂  ──50 YA u8
+▃       ▂▃         ▃ ▃                 ▁    ▁·▂                      ──51 YaA u8
+▁   ▂▂▂▃▂▁▂▂   ▂▂▂ ▁ ▃ ▃▂             ▃▃ ▂ ▃▁▁·      ▂▂▂▂         ▂  ──52 Y u8
+·   ▁▁▃▃▁▂▁▁   ▁▁▁ ▂ ▃  ▃             ▂▂ ▃ ▂          ▁▁▁         ▁  ──53 CIE Lab double
+·   ▁▁▃▃▁▂▁▁   ▁▁▁ ▂ ▂  ▃             ▂▂   ▂           ▁          ▁  ──54 CIE Lab alpha double
+·   ▁▁▃▃▁▂▁▁   ▁▁▁ ▂ ▃  ▃             ▂▂ ▃ ▂         ▁  ▁         ▁  ──55 CIE LCH(ab) double
+·   ▁▁▃▃▁▂▁▁   ▁▁▁ ▂ ▂  ▃             ▂▂   ▂         ▁▁           ▁  ──56 CIE LCH(ab) alpha double
+                                                                     ──57 CIE Lab float
+                                                                     ──58 CIE Lab alpha float
+                                                                     ──59 CIE Lab u8
+                                                                     ──60 CIE Lab u16
+                                                                     ──61 CIE LCH(ab) float
+                                                                     ──62 CIE LCH(ab) alpha float
+                                                                     ──63 cairo-ARGB32
+                                                                     ──64 cairo-RGB24
+                                                                     ──65 cairo-A8
+·   ▁▁▃▃▁▂▁▁   ▁▁▁ ▂ ▃  ▃             ▃▂ ▃ ▂         ▁▁▁▁            ──66 CMYK double
+                                                                     ──67 CMYK float
+                                                                     ──68 B'aG'aR'aA u8
+|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+||||||||||11111111112222222222333333333344444444445555555555666666666
+012345678901234567890123456789012345678901234567890123456789012345678
+total length: 2751
+total cost  : 504960
 
 Environment
 
@@ -1418,4 +1406,4 @@ Daniel Paredes García danipga at gmail.com
 Rupert Weber gimp at leguanease.org
     Documentation and other improvements
 
-/babl-0.1.8
+/babl-0.1.10
index 15beb91774f1fd3743ef0d2106c9e000cebcea91..4f68aaa2f450745fb94d74d1d966c91937a6b0e4 100644 (file)
@@ -429,7 +429,7 @@ babl_conversion_process (const Babl *babl,
   return n;
 }
 
-#define test_pixels    512
+#define test_pixels    128
 
 
 static double *
index f8025b2db1f8d4042f4d64cf60dee7eeae739f08..75a7c299e8a9d526fd6824fba3895a95f7b6ed05 100644 (file)
@@ -34,7 +34,7 @@
 
 #define BABL_MAJOR_VERSION 0
 #define BABL_MINOR_VERSION 1
-#define BABL_MICRO_VERSION 8
+#define BABL_MICRO_VERSION 10
 
 /** Get the version information on the babl library */
 void   babl_get_version (int *major,
index 8de970e752491870b32c18599041e85bda01afbd..df7f7b0f960d036eeeceb365725df8c2cd282f3a 100644 (file)
@@ -285,16 +285,16 @@ premultiplied_to_non_premultiplied (int    src_bands,
       int    band;
 
       alpha = *(double *) src[src_bands - 1];
-      for (band = 0; band < src_bands - 1; band++)
+      if (alpha > BABL_ALPHA_THRESHOLD)
         {
-          if (alpha > BABL_ALPHA_THRESHOLD)
-            {
-              *(double *) dst[band] = *(double *) src[band] / alpha;
-            }
-          else
-            {
-              *(double *) dst[band] = 0.00;
-            }
+          double recip_alpha = 1.0 / alpha;
+          for (band = 0; band < src_bands - 1; band++)
+            *(double *) dst[band] = *(double *) src[band] * recip_alpha;
+        }
+      else
+        {
+          for (band = 0; band < src_bands - 1; band++)
+            *(double *) dst[band] = 0.0;
         }
       *(double *) dst[dst_bands - 1] = alpha;
 
index 7ccaf8f56420538e996b04cf4b58e293f680aec8..a229894562056d0cd3501b43152e5d0680b7a347 100644 (file)
@@ -16,8 +16,8 @@
  * <http://www.gnu.org/licenses/>.
  */
 
-#ifndef _UTIL_H
-#define _UTIL_H
+#ifndef _BASE_UTIL_H
+#define _BASE_UTIL_H
 
 #include <assert.h>
 #include <math.h>
 
 #ifdef BABL_USE_SRGB_GAMMA
 
+/*  fast approximation of x ^ (5/12) from a response by David Hammen at
+ *  http://stackoverflow.com/questions/6475373/optimizations-for-pow-with-const-non-integer-exponent/6475516#6475516
+ *
+ */
+static inline double xpow512 (double x)
+{
+  double cbrtx = cbrt(x);
+  return cbrtx*sqrt(sqrt(cbrtx));
+}
+
+
 static inline double
 linear_to_gamma_2_2 (double value)
 {
+#if 0
   if (value > 0.0030402477F)
     return 1.055F * pow (value, (1.0F/2.4F)) - 0.055F;
   return 12.92F * value;
+#else
+  if (value > 0.0030402477F)
+    return 1.055F * xpow512 (value) - 0.055F;
+  return 12.92F * value;
+#endif
 }
 
 static inline double
index d96bf91811026c9518ee52bd7b17176dfe22b651..078dcc4da4d73c624014815cab879829aca23133 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for babl 0.1.8.
+# Generated by GNU Autoconf 2.68 for babl 0.1.10.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -567,8 +567,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='babl'
 PACKAGE_TARNAME='babl'
-PACKAGE_VERSION='0.1.8'
-PACKAGE_STRING='babl 0.1.8'
+PACKAGE_VERSION='0.1.10'
+PACKAGE_STRING='babl 0.1.10'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1353,7 +1353,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures babl 0.1.8 to adapt to many kinds of systems.
+\`configure' configures babl 0.1.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1423,7 +1423,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of babl 0.1.8:";;
+     short | recursive ) echo "Configuration of babl 0.1.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1539,7 +1539,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-babl configure 0.1.8
+babl configure 0.1.10
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1904,7 +1904,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by babl $as_me 0.1.8, which was
+It was created by babl $as_me 0.1.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2260,11 +2260,11 @@ ac_config_headers="$ac_config_headers config.h"
 
 BABL_MAJOR_VERSION=0
 BABL_MINOR_VERSION=1
-BABL_MICRO_VERSION=8
+BABL_MICRO_VERSION=10
 BABL_INTERFACE_AGE=1
-BABL_BINARY_AGE=108
-BABL_VERSION=0.1.8
-BABL_REAL_VERSION=0.1.8
+BABL_BINARY_AGE=110
+BABL_VERSION=0.1.10
+BABL_REAL_VERSION=0.1.10
 BABL_API_VERSION=0.1
 
 
@@ -2585,7 +2585,7 @@ fi
 
 
 
-BABL_LIBRARY_VERSION="107:1:107"
+BABL_LIBRARY_VERSION="109:1:109"
 BABL_CURRENT_MINUS_AGE=0
 
 
@@ -3058,7 +3058,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='babl'
- VERSION='0.1.8'
+ VERSION='0.1.10'
 
 
 # Some tools Automake needs.
@@ -14485,7 +14485,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by babl $as_me 0.1.8, which was
+This file was extended by babl $as_me 0.1.10, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14551,7 +14551,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-babl config.status 0.1.8
+babl config.status 0.1.10
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
index 3d9974aa64c4353de5a78943b6eb2be6dde84c67..26b02dabd2247a8aefb641422d8781085af3f3bf 100644 (file)
@@ -14,7 +14,7 @@ AC_PREREQ(2.54)
 
 m4_define([babl_major_version], [0])
 m4_define([babl_minor_version], [1])
-m4_define([babl_micro_version], [8])
+m4_define([babl_micro_version], [10])
 m4_define([babl_real_version],
           [babl_major_version.babl_minor_version.babl_micro_version])
 m4_define([babl_version], [babl_real_version])
index fac012330d53c255d5010ba829e5ba3fe4cdba74..4d2d4cbe981bbd1d981932f16b4222e7715d37b3 100644 (file)
@@ -6,6 +6,7 @@ endif
 
 noinst_HEADERS = util.h
 
+
 AM_CPPFLAGS = \
        -I$(top_builddir)               \
        -I$(top_srcdir)                 \
@@ -20,6 +21,8 @@ ext_LTLIBRARIES = \
        gggl-lies.la    \
        gggl.la         \
        gimp-8bit.la    \
+       float.la    \
+       fast-float.la    \
        naive-CMYK.la   \
        sse-fixups.la
 
@@ -31,6 +34,8 @@ gggl_la_SOURCES = gggl.c
 gimp_8bit_la_SOURCES = gimp-8bit.c
 naive_CMYK_la_SOURCES = naive-CMYK.c
 sse_fixups_la_SOURCES = sse-fixups.c
+float_la_SOURCES = float.c
+fast_float_la_SOURCES = fast-float.c
 
 LIBS = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la $(MATH_LIB)
 
index ce45e71884a3e471b08a529249d8b25fb1126350..adb2998d82e0f6f55ab23bbc326435868ba52814 100644 (file)
@@ -88,6 +88,12 @@ am__v_lt_0 = --silent
 cairo_la_LIBADD =
 am_cairo_la_OBJECTS = cairo.lo
 cairo_la_OBJECTS = $(am_cairo_la_OBJECTS)
+fast_float_la_LIBADD =
+am_fast_float_la_OBJECTS = fast-float.lo
+fast_float_la_OBJECTS = $(am_fast_float_la_OBJECTS)
+float_la_LIBADD =
+am_float_la_OBJECTS = float.lo
+float_la_OBJECTS = $(am_float_la_OBJECTS)
 gegl_fixups_la_LIBADD =
 am_gegl_fixups_la_OBJECTS = gegl-fixups.lo
 gegl_fixups_la_OBJECTS = $(am_gegl_fixups_la_OBJECTS)
@@ -136,10 +142,12 @@ AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(CIE_la_SOURCES) $(cairo_la_SOURCES) \
+       $(fast_float_la_SOURCES) $(float_la_SOURCES) \
        $(gegl_fixups_la_SOURCES) $(gggl_lies_la_SOURCES) \
        $(gggl_la_SOURCES) $(gimp_8bit_la_SOURCES) \
        $(naive_CMYK_la_SOURCES) $(sse_fixups_la_SOURCES)
 DIST_SOURCES = $(CIE_la_SOURCES) $(cairo_la_SOURCES) \
+       $(fast_float_la_SOURCES) $(float_la_SOURCES) \
        $(gegl_fixups_la_SOURCES) $(gggl_lies_la_SOURCES) \
        $(gggl_la_SOURCES) $(gimp_8bit_la_SOURCES) \
        $(naive_CMYK_la_SOURCES) $(sse_fixups_la_SOURCES)
@@ -315,6 +323,8 @@ ext_LTLIBRARIES = \
        gggl-lies.la    \
        gggl.la         \
        gimp-8bit.la    \
+       float.la    \
+       fast-float.la    \
        naive-CMYK.la   \
        sse-fixups.la
 
@@ -326,6 +336,8 @@ gggl_la_SOURCES = gggl.c
 gimp_8bit_la_SOURCES = gimp-8bit.c
 naive_CMYK_la_SOURCES = naive-CMYK.c
 sse_fixups_la_SOURCES = sse-fixups.c
+float_la_SOURCES = float.c
+fast_float_la_SOURCES = fast-float.c
 sse_fixups_la_CFLAGS = $(MMX_EXTRA_CFLAGS) $(SSE_EXTRA_CFLAGS)
 all: all-am
 
@@ -396,6 +408,10 @@ CIE.la: $(CIE_la_OBJECTS) $(CIE_la_DEPENDENCIES) $(EXTRA_CIE_la_DEPENDENCIES)
        $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(CIE_la_OBJECTS) $(CIE_la_LIBADD) $(LIBS)
 cairo.la: $(cairo_la_OBJECTS) $(cairo_la_DEPENDENCIES) $(EXTRA_cairo_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(cairo_la_OBJECTS) $(cairo_la_LIBADD) $(LIBS)
+fast-float.la: $(fast_float_la_OBJECTS) $(fast_float_la_DEPENDENCIES) $(EXTRA_fast_float_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(fast_float_la_OBJECTS) $(fast_float_la_LIBADD) $(LIBS)
+float.la: $(float_la_OBJECTS) $(float_la_DEPENDENCIES) $(EXTRA_float_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(float_la_OBJECTS) $(float_la_LIBADD) $(LIBS)
 gegl-fixups.la: $(gegl_fixups_la_OBJECTS) $(gegl_fixups_la_DEPENDENCIES) $(EXTRA_gegl_fixups_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(LINK) -rpath $(extdir) $(gegl_fixups_la_OBJECTS) $(gegl_fixups_la_LIBADD) $(LIBS)
 gggl-lies.la: $(gggl_lies_la_OBJECTS) $(gggl_lies_la_DEPENDENCIES) $(EXTRA_gggl_lies_la_DEPENDENCIES) 
@@ -417,6 +433,8 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CIE.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fast-float.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gegl-fixups.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gggl-lies.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gggl.Plo@am__quote@
diff --git a/extensions/fast-float.c b/extensions/fast-float.c
new file mode 100644 (file)
index 0000000..fd7fb9f
--- /dev/null
@@ -0,0 +1,471 @@
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2012, Øyvind Kolås
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "babl-cpuaccel.h"
+#include "extensions/util.h"
+#include "base/util.h"
+
+#define INLINE inline
+
+#define  LSHIFT 2
+
+typedef  float (* BablLookupFunction) (float  value,
+                                       void  *data);
+#define babl_LOOKUP_MAX_ENTRIES   (819200)
+
+typedef struct BablLookup
+{
+  BablLookupFunction function;
+  void              *data;
+  int               shift;
+  uint32_t            positive_min, positive_max, negative_min, negative_max;
+  uint32_t            bitmask[babl_LOOKUP_MAX_ENTRIES/32];
+  float             table[];
+} BablLookup;
+
+
+static BablLookup *babl_lookup_new (BablLookupFunction  function,
+                                    void *              data,
+                                    float               start,
+                                    float               end,
+                                    float               precision);
+#if 0
+static void        babl_lookup_free      (BablLookup         *lookup);
+#endif
+
+
+static inline float
+babl_lookup (BablLookup *lookup,
+             float      number)
+{
+  union
+  {
+    float   f;
+    uint32_t i;
+  } u;
+  uint32_t i;
+
+  u.f = number;
+  i = (u.i << LSHIFT )>> lookup->shift;
+
+  if (i > lookup->positive_min &&
+      i < lookup->positive_max)
+    i = i - lookup->positive_min;
+  else if (i > lookup->negative_min &&
+           i < lookup->negative_max)
+    i = i - lookup->negative_min + (lookup->positive_max - lookup->positive_min);
+  else
+    return lookup->function (number, lookup->data);
+
+  if (!(lookup->bitmask[i/32] & (1<<(i & 31))))
+    {
+      /* XXX: should look up the value in the middle of the range
+       *      that yields a given value,
+       *
+       *      potentially even do linear interpolation between
+       *      the two neighbour values to get away with a tiny
+       *      lookup table.. 
+       */
+      lookup->table[i]= lookup->function (number, lookup->data);
+      lookup->bitmask[i/32] |= (1<<(i & 31));
+    }
+
+  return lookup->table[i];
+}
+
+static BablLookup *
+babl_lookup_new (BablLookupFunction function,
+                 void *             data,
+                 float              start,
+                 float              end,
+                 float              precision)
+{
+  BablLookup *lookup;
+  union
+  {
+    float   f;
+    uint32_t i;
+  } u;
+  int positive_min, positive_max, negative_min, negative_max;
+  int shift;
+
+  /* normalize input parameters */
+  if (start > end)
+    { /* swap */
+      u.f = start;
+      start = end;
+      end = u.f;
+    }
+
+       if (precision <= 0.000005) shift =  0; /* checked for later */
+  else if (precision <= 0.000010) shift =  8;
+  else if (precision <= 0.000020) shift =  9;
+  else if (precision <= 0.000040) shift = 10;
+  else if (precision <= 0.000081) shift = 11;
+  else if (precision <= 0.000161) shift = 12;
+  else if (precision <= 0.000324) shift = 14;
+  else if (precision <= 0.000649) shift = 15;
+  else shift = 16; /* a bit better than 8bit sRGB quality */
+
+  /* Adjust slightly away from 0.0, saving many entries close to 0, this
+   * causes lookups very close to zero to be passed directly to the
+   * function instead.
+   */
+  if (start == 0.0)
+    start = precision;
+  if (end == 0.0)
+    end = -precision;
+
+  /* Compute start and */
+
+  if (start < 0.0 || end < 0.0)
+    {
+      if (end < 0.0)
+        {
+          u.f = start;
+          positive_max = (u.i << LSHIFT) >> shift;
+          u.f = end;
+          positive_min = (u.i << LSHIFT) >> shift;
+          negative_min = positive_max;
+          negative_max = positive_max;
+        }
+      else
+        {
+          u.f = 0 - precision;
+          positive_min = (u.i << LSHIFT) >> shift;
+          u.f = start;
+          positive_max = (u.i << LSHIFT) >> shift;
+
+          u.f = 0 + precision;
+          negative_min = (u.i << LSHIFT) >> shift;
+          u.f = end;
+          negative_max = (u.i << LSHIFT) >> shift;
+        }
+    }
+  else
+    {
+      u.f = start;
+      positive_min = (u.i << LSHIFT) >> shift;
+      u.f = end;
+      positive_max = (u.i << LSHIFT) >> shift;
+      negative_min = positive_max;
+      negative_max = positive_max;
+    }
+
+  if (shift == 0) /* short circuit, do not use ranges */
+    {
+      positive_min = positive_max = negative_min = negative_max = 0;
+    }
+
+  if ((positive_max-positive_min) + (negative_max-negative_min) > babl_LOOKUP_MAX_ENTRIES)
+    {
+      /* Reduce the size of the cache tables to fit within the bittable
+       * budget (the maximum allocation is around 2.18mb of memory
+       */
+
+      int diff = (positive_max-positive_min) + (negative_max-negative_min) - babl_LOOKUP_MAX_ENTRIES;
+
+      if (negative_max - negative_min > 0)
+        {
+          if (negative_max - negative_min >= diff)
+            {
+              negative_max -= diff;
+              diff = 0;
+            }
+          else
+            {
+              diff -= negative_max - negative_min;
+              negative_max = negative_min;
+            }
+        }
+      if (diff)
+        positive_max-=diff;
+    }
+
+  lookup = calloc (sizeof (BablLookup) + sizeof (float) *
+                                                  ((positive_max-positive_min)+
+                                                   (negative_max-negative_min)), 1);
+
+  lookup->positive_min = positive_min;
+  lookup->positive_max = positive_max;
+  lookup->negative_min = negative_min;
+  lookup->negative_max = negative_max;
+  lookup->shift = shift;
+  lookup->function = function;
+  lookup->data = data;
+
+  return lookup;
+}
+
+static BablLookup *fast_pow = NULL;
+
+static inline float core_lookup (float val, void *userdata)
+{
+  return linear_to_gamma_2_2 (val);
+}
+
+static float
+linear_to_gamma_2_2_lut (float val)
+{
+  return babl_lookup (fast_pow, val);
+}
+
+
+static BablLookup *fast_rpow = NULL;
+
+static inline float core_rlookup (float val, void *userdata)
+{
+  return gamma_2_2_to_linear (val);
+}
+
+static float
+gamma_2_2_to_linear_lut (float val)
+{
+  return babl_lookup (fast_rpow, val);
+}
+
+#if 0
+static void
+babl_lookup_free (BablLookup *lookup)
+{
+  free (lookup);
+}
+#endif
+
+static INLINE long
+conv_rgbaF_linear_rgbAF_gamma (unsigned char *src, 
+                               unsigned char *dst, 
+                               long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       float alpha = fsrc[3];
+       *fdst++ = linear_to_gamma_2_2_lut (*fsrc++) * alpha;
+       *fdst++ = linear_to_gamma_2_2_lut (*fsrc++) * alpha;
+       *fdst++ = linear_to_gamma_2_2_lut (*fsrc++) * alpha;
+       *fdst++ = *fsrc++;
+     }
+  return samples;
+}
+
+static INLINE long
+conv_rgbAF_linear_rgbAF_gamma (unsigned char *src, 
+                               unsigned char *dst, 
+                               long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       float alpha = fsrc[3];
+       if (alpha < BABL_ALPHA_THRESHOLD)
+         {
+           *fdst++ = 0.0;
+           *fdst++ = 0.0;
+           *fdst++ = 0.0;
+           *fdst++ = 0.0;
+           fsrc+=4;
+         }
+       else if (alpha >= 1.0)
+         {
+           *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+           *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+           *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+           *fdst++ = *fsrc++;
+         }
+       else
+         {
+           float alpha_recip = 1.0 / alpha;
+           *fdst++ = linear_to_gamma_2_2_lut (*fsrc++ * alpha_recip) * alpha;
+           *fdst++ = linear_to_gamma_2_2_lut (*fsrc++ * alpha_recip) * alpha;
+           *fdst++ = linear_to_gamma_2_2_lut (*fsrc++ * alpha_recip) * alpha;
+           *fdst++ = *fsrc++;
+         }
+     }
+  return samples;
+}
+
+static INLINE long
+conv_rgbaF_linear_rgbaF_gamma (unsigned char *src, 
+                               unsigned char *dst, 
+                               long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+       *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+       *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+       *fdst++ = *fsrc++;
+     }
+  return samples;
+}
+
+static INLINE long
+conv_rgbF_linear_rgbF_gamma (unsigned char *src, 
+                             unsigned char *dst, 
+                             long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+       *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+       *fdst++ = linear_to_gamma_2_2_lut (*fsrc++);
+     }
+  return samples;
+}
+
+
+static INLINE long
+conv_rgbaF_gamma_rgbaF_linear (unsigned char *src, 
+                               unsigned char *dst, 
+                               long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+       *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+       *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+       *fdst++ = *fsrc++;
+     }
+  return samples;
+}
+
+static INLINE long
+conv_rgbF_gamma_rgbF_linear (unsigned char *src, 
+                             unsigned char *dst, 
+                             long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+       *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+       *fdst++ = gamma_2_2_to_linear_lut (*fsrc++);
+     }
+  return samples;
+}
+
+#define o(src, dst) \
+  babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+int init (void);
+
+int
+init (void)
+{
+  const Babl *rgbaF_linear = babl_format_new (
+    babl_model ("RGBA"),
+    babl_type ("float"),
+    babl_component ("R"),
+    babl_component ("G"),
+    babl_component ("B"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgbAF_linear = babl_format_new (
+    babl_model ("RaGaBaA"),
+    babl_type ("float"),
+    babl_component ("Ra"),
+    babl_component ("Ga"),
+    babl_component ("Ba"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgbaF_gamma = babl_format_new (
+    babl_model ("R'G'B'A"),
+    babl_type ("float"),
+    babl_component ("R'"),
+    babl_component ("G'"),
+    babl_component ("B'"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgbAF_gamma = babl_format_new (
+    babl_model ("R'aG'aB'aA"),
+    babl_type ("float"),
+    babl_component ("R'a"),
+    babl_component ("G'a"),
+    babl_component ("B'a"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgbF_linear = babl_format_new (
+    babl_model ("RGB"),
+    babl_type ("float"),
+    babl_component ("R"),
+    babl_component ("G"),
+    babl_component ("B"),
+    NULL);
+  const Babl *rgbF_gamma = babl_format_new (
+    babl_model ("R'G'B'"),
+    babl_type ("float"),
+    babl_component ("R'"),
+    babl_component ("G'"),
+    babl_component ("B'"),
+    NULL);
+
+  {
+    float f;
+    float a;
+
+    fast_pow = babl_lookup_new (core_lookup, NULL, 0.0, 1.0,   0.0001);
+    fast_rpow = babl_lookup_new (core_rlookup, NULL, 0.0, 1.0, 0.0001);
+
+    for (f = 0.0; f < 1.0; f+= 0.00001)
+      {
+        a = linear_to_gamma_2_2_lut (f);
+        a = gamma_2_2_to_linear_lut (f);
+      }
+    if (a < -10)
+      f = 2;
+
+  }
+
+  o (rgbAF_linear, rgbAF_gamma);
+  o (rgbaF_linear, rgbAF_gamma);
+  o (rgbaF_linear, rgbaF_gamma);
+  o (rgbaF_gamma,  rgbaF_linear);
+  o (rgbF_linear, rgbF_gamma);
+  o (rgbF_gamma,  rgbF_linear);
+
+  return 0;
+}
+
diff --git a/extensions/float.c b/extensions/float.c
new file mode 100644 (file)
index 0000000..067d4e9
--- /dev/null
@@ -0,0 +1,230 @@
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2012, Øyvind Kolås
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "babl.h"
+#include "babl-cpuaccel.h"
+#include "extensions/util.h"
+#include "base/util.h"
+
+#define INLINE inline
+
+
+static INLINE long
+conv_rgbaF_linear_rgbAF_gamma (unsigned char *src, 
+                               unsigned char *dst, 
+                               long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       float alpha = fsrc[3];
+       *fdst++ = linear_to_gamma_2_2 (*fsrc++) * alpha;
+       *fdst++ = linear_to_gamma_2_2 (*fsrc++) * alpha;
+       *fdst++ = linear_to_gamma_2_2 (*fsrc++) * alpha;
+       *fdst++ = *fsrc++;
+     }
+  return samples;
+}
+
+static INLINE long
+conv_rgbAF_linear_rgbAF_gamma (unsigned char *src, 
+                               unsigned char *dst, 
+                               long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       float alpha = fsrc[3];
+       if (alpha < BABL_ALPHA_THRESHOLD)
+         {
+           *fdst++ = 0.0;
+           *fdst++ = 0.0;
+           *fdst++ = 0.0;
+           *fdst++ = 0.0;
+           fsrc+=4;
+         }
+       else if (alpha >= 1.0)
+         {
+           *fdst++ = linear_to_gamma_2_2 (*fsrc++);
+           *fdst++ = linear_to_gamma_2_2 (*fsrc++);
+           *fdst++ = linear_to_gamma_2_2 (*fsrc++);
+           *fdst++ = *fsrc++;
+         }
+       else
+         {
+           float alpha_recip = 1.0 / alpha;
+           *fdst++ = linear_to_gamma_2_2 (*fsrc++ * alpha_recip) * alpha;
+           *fdst++ = linear_to_gamma_2_2 (*fsrc++ * alpha_recip) * alpha;
+           *fdst++ = linear_to_gamma_2_2 (*fsrc++ * alpha_recip) * alpha;
+           *fdst++ = *fsrc++;
+         }
+     }
+  return samples;
+}
+
+static INLINE long
+conv_rgbaF_linear_rgbaF_gamma (unsigned char *src, 
+                               unsigned char *dst, 
+                               long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       *fdst++ = linear_to_gamma_2_2 (*fsrc++);
+       *fdst++ = linear_to_gamma_2_2 (*fsrc++);
+       *fdst++ = linear_to_gamma_2_2 (*fsrc++);
+       *fdst++ = *fsrc++;
+     }
+  return samples;
+}
+
+static INLINE long
+conv_rgbF_linear_rgbF_gamma (unsigned char *src, 
+                             unsigned char *dst, 
+                             long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       *fdst++ = linear_to_gamma_2_2 (*fsrc++);
+       *fdst++ = linear_to_gamma_2_2 (*fsrc++);
+       *fdst++ = linear_to_gamma_2_2 (*fsrc++);
+     }
+  return samples;
+}
+
+
+static INLINE long
+conv_rgbaF_gamma_rgbaF_linear (unsigned char *src, 
+                               unsigned char *dst, 
+                               long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       *fdst++ = gamma_2_2_to_linear (*fsrc++);
+       *fdst++ = gamma_2_2_to_linear (*fsrc++);
+       *fdst++ = gamma_2_2_to_linear (*fsrc++);
+       *fdst++ = *fsrc++;
+     }
+  return samples;
+}
+
+static INLINE long
+conv_rgbF_gamma_rgbF_linear (unsigned char *src, 
+                             unsigned char *dst, 
+                             long           samples)
+{
+   float *fsrc = (float *) src;
+   float *fdst = (float *) dst;
+   int n = samples;
+
+   while (n--)
+     {
+       *fdst++ = gamma_2_2_to_linear (*fsrc++);
+       *fdst++ = gamma_2_2_to_linear (*fsrc++);
+       *fdst++ = gamma_2_2_to_linear (*fsrc++);
+     }
+  return samples;
+}
+
+#define o(src, dst) \
+  babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
+
+int init (void);
+
+int
+init (void)
+{
+  const Babl *rgbaF_linear = babl_format_new (
+    babl_model ("RGBA"),
+    babl_type ("float"),
+    babl_component ("R"),
+    babl_component ("G"),
+    babl_component ("B"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgbAF_linear = babl_format_new (
+    babl_model ("RaGaBaA"),
+    babl_type ("float"),
+    babl_component ("Ra"),
+    babl_component ("Ga"),
+    babl_component ("Ba"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgbaF_gamma = babl_format_new (
+    babl_model ("R'G'B'A"),
+    babl_type ("float"),
+    babl_component ("R'"),
+    babl_component ("G'"),
+    babl_component ("B'"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgbAF_gamma = babl_format_new (
+    babl_model ("R'aG'aB'aA"),
+    babl_type ("float"),
+    babl_component ("R'a"),
+    babl_component ("G'a"),
+    babl_component ("B'a"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgbF_linear = babl_format_new (
+    babl_model ("RGB"),
+    babl_type ("float"),
+    babl_component ("R"),
+    babl_component ("G"),
+    babl_component ("B"),
+    NULL);
+  const Babl *rgbF_gamma = babl_format_new (
+    babl_model ("R'G'B'"),
+    babl_type ("float"),
+    babl_component ("R'"),
+    babl_component ("G'"),
+    babl_component ("B'"),
+    NULL);
+
+  o (rgbAF_linear, rgbAF_gamma);
+  o (rgbaF_linear, rgbAF_gamma);
+  o (rgbaF_linear, rgbaF_gamma);
+  o (rgbaF_gamma,  rgbaF_linear);
+  o (rgbF_linear, rgbF_gamma);
+  o (rgbF_gamma,  rgbF_linear);
+
+  return 0;
+}
+
index 3fb69773f50760d794e6fcb9837c4c3b4ca2d3c0..c0919c9d8945c60b91d58c218154eb202e6198bc 100644 (file)
@@ -323,67 +323,6 @@ conv_rgb8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
   return samples;
 }
 
-static long
-conv_rgbAF_sdl32 (unsigned char *srcc,
-                  unsigned char *dstc,
-                  long           samples)
-{
-  float         *src = (void *) srcc;
-  unsigned char *dst = (void *) dstc;
-  long           n   = samples;
-
-  while (n--)
-    {
-      int   i;
-      float alpha = src[3];
-      for (i = 0; i < 3; i++)
-        {
-          float ca = src[i];
-          int   ret;
-          if (alpha < BABL_ALPHA_THRESHOLD)
-            ret = 0;
-          else
-            ret = table_F_8g[gggl_float_to_index16 (ca / alpha)];
-          if (ret <= 0)
-            dst[i] = 0;
-          else if (ret > 255)
-            dst[i] = 255;
-          else
-            dst[i] = ret;
-        }
-      {
-        int t = dst[0];
-        dst[0] = dst[2];
-        dst[2] = t;
-        dst[3] = 255;
-      }
-      src += 4;
-      dst += 4;
-    }
-  return samples;
-}
-
-
-static long
-conv_rgbaF_sdl32 (unsigned char *srcc,
-                  unsigned char *dstc,
-                  long           samples)
-{
-  float         *src = (void *) srcc;
-  unsigned char *dst = (void *) dstc;
-  long           n   = samples;
-
-  while (n--)
-    {
-      dst[0] = table_F_8g[gggl_float_to_index16 (src[2])];
-      dst[1] = table_F_8g[gggl_float_to_index16 (src[1])];
-      dst[2] = table_F_8g[gggl_float_to_index16 (src[0])];
-      src   += 4;
-      dst   += 4;
-    }
-  return samples;
-}
-
 static long
 conv_rgbAF_rgb8 (unsigned char *srcc,
                  unsigned char *dstc,
@@ -473,9 +412,11 @@ conv_rgbAF_rgbaF (unsigned char *srcc,
   while (n--)
     {
       float alpha = src[3];
-      float recip = 1.0/alpha;
+      float recip;
       if (alpha < BABL_ALPHA_THRESHOLD)
         recip = 0.0;
+      else
+        recip = 1.0/alpha;
       dst[0] = src[0] * recip;
       dst[1] = src[1] * recip;
       dst[2] = src[2] * recip;
@@ -518,8 +459,6 @@ conv_rgbAF_lrgba8 (unsigned char *srcc,
   return samples;
 }
 
-
-
 #define conv_rgb8_rgbAF    conv_rgb8_rgbaF
 
 int init (void);
@@ -577,15 +516,6 @@ init (void)
     babl_component ("G'"),
     babl_component ("B'"),
     NULL);
-  const Babl *sdl32 = babl_format_new (
-    "name", "B'aG'aR'aPAD u8",
-    babl_model ("R'G'B'"),
-    babl_type ("u8"),
-    babl_component ("B'"),
-    babl_component ("G'"),
-    babl_component ("R'"),
-    babl_component ("PAD"),
-    NULL);
 
   table_init ();
 
@@ -598,10 +528,8 @@ init (void)
   o (rgb8, rgbaF);
   o (rgb8, rgbAF);
   o (rgba8, rgbaF);
-  o (rgbaF, sdl32);
   o (rgbaF, rgb8);
   o (rgbAF, rgb8);
-  o (rgbAF, sdl32);
   o (bgrA8, rgba8);
 
   return 0;
index 6627e6e3eadc1805d9a931f3ff752d7270ee55b0..e3c0029fd46299a95f158382b50519637b26a6bd 100644 (file)
@@ -735,10 +735,8 @@ conv_gF_gaF (unsigned char *src, unsigned char *dst, long samples)
   return samples;
 }
 
-#define conv_gAF_gF        conv_gaF_gF
 #define conv_gF_gAF        conv_gF_gaF
 
-#define conv_rgbAF_rgbF    conv_rgbaF_rgbF
 #define conv_rgbF_rgbAF    conv_rgbF_rgbaF
 
 /* colorchannel dropping and adding */
@@ -835,29 +833,6 @@ conv_rgbaF_gaF (unsigned char *src, unsigned char *dst, long samples)
 
 /* other conversions coded for some optimisation reason or sumthin */
 
-static INLINE long
-conv_rgbA8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
-{
-  long n = samples;
-
-  while (n--)
-    {
-      float alpha = (*(unsigned char *) src + (3)) / 255.0;
-      int   c;
-
-      for (c = 0; c < 3; c++)
-        {
-          (*(float *) dst) = (*(unsigned char *) src / 255.0) / alpha;
-          dst             += 4;
-          src             += 1;
-        }
-      *(float *) dst = alpha;
-      dst           += 4;
-      src           += 1;
-    }
-  return samples;
-}
-
 static INLINE long
 conv_rgbaF_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
 {
@@ -881,29 +856,6 @@ conv_rgbaF_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
   return samples;
 }
 
-static INLINE long
-conv_rgbaF_rgbA16 (unsigned char *src, unsigned char *dst, long samples)
-{
-  long n = samples;
-
-  while (n--)
-    {
-      float alpha = (*(float *) src + (4 * 3));
-      int   c;
-
-      for (c = 0; c < 3; c++)
-        {
-          *(unsigned short *) dst = ((*(float *) src) * alpha) * 65535.0;
-          dst                    += 2;
-          src                    += 4;
-        }
-      *(unsigned short *) dst = alpha * 65535.0;
-      dst                    += 2;
-      src                    += 4;
-    }
-  return samples;
-}
-
 static INLINE long
 conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
 {
@@ -1290,29 +1242,6 @@ conv_rgb8_Prgb8 (unsigned char *src, unsigned char *dst, long samples)
   return samples;
 }
 
-static INLINE long
-conv_rgbA16_rgba16 (unsigned char *src, unsigned char *dst, long samples)
-{
-  long n = samples;
-
-  while (n--)
-    {
-      if (src[3])
-        {
-          ((unsigned short *) dst)[0] =
-            (((unsigned short *) src)[0] * 65535) / src[3];
-          ((unsigned short *) dst)[1] =
-            (((unsigned short *) src)[1] * 65535) / src[3];
-          ((unsigned short *) dst)[2] =
-            (((unsigned short *) src)[2] * 65535) / src[3];
-        }
-      ((unsigned short *) dst)[3] = ((unsigned short *) src)[3];
-      dst                        += 8;
-      src                        += 8;
-    }
-  return samples;
-}
-
 static INLINE long
 conv_rgb8_rgbP8 (unsigned char *src, unsigned char *dst, long samples)
 {
@@ -1407,8 +1336,6 @@ conv_rgba8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
   return samples;
 }
 
-#define conv_rgbA8_rgb8    conv_rgbP8_rgb8
-
 #ifndef byteclamp
 #define byteclamp(j)                   do { if (j < 0) j = 0;else if (j > 255) j = 255; } while (0)
 #endif
@@ -1431,169 +1358,6 @@ conv_rgba8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
       byteclamp (V); \
     } while (0)
 
-static INLINE long
-conv_yuv8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
-{
-  long n = samples;
-
-  while (n--)
-    {
-      int R, G, B;
-
-      YUV82RGB8 (src[0], src[1], src[2], R, G, B);
-      dst[0] = R;
-      dst[1] = G;
-      dst[2] = B;
-      src   += 3;
-      dst   += 3;
-    }
-  return samples;
-}
-
-static INLINE long
-conv_rgb8_yuv8 (unsigned char *src, unsigned char *dst, long samples)
-{
-  long n = samples;
-
-  while (n--)
-    {
-      int Y, U, V;
-
-      YUV82RGB8 (src[0], src[1], src[2], Y, U, V);
-      dst[0] = Y;
-      dst[1] = U;
-      dst[2] = V;
-      src   += 3;
-      dst   += 3;
-    }
-  return samples;
-}
-
-static INLINE long
-conv_rgbaF_yuvaF (unsigned char *src, unsigned char *dst, long samples)
-{
-  float *src_f = (float *) src;
-  float *dst_f = (float *) dst;
-  long   n     = samples;
-
-  while (n--)
-    {
-      float R, G, B;
-      float Y, U, V;
-
-      R = src_f[0];
-      G = src_f[1];
-      B = src_f[2];
-
-      Y = 0.299 * R + 0.587 * B + 0.114 * B;
-      U = (-0.1687) * R - 0.3313 * G + 0.5 * B /* +0.5 */;
-      V = 0.5 * R - 0.4187 * G - 0.0813 * B /* +0.5 */;
-
-      dst_f[0] = Y;
-      dst_f[1] = U;
-      dst_f[2] = V;
-      dst_f[3] = src_f[3];
-
-      dst_f += 4;
-      src_f += 4;
-    }
-  return samples;
-}
-
-static INLINE long
-conv_yuvaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
-{
-  float *src_f = (float *) src;
-  float *dst_f = (float *) dst;
-  long   n     = samples;
-
-  while (n--)
-    {
-      float Y, U, V;
-      float R, G, B;
-
-      Y = src_f[0];
-      U = src_f[1];
-      V = src_f[2];
-
-      R = Y + 1.40200 * (V /*-0.5*/);
-      G = Y - 0.34414 * (U /*-0.5*/) -0.71414 * (V /*-0.5*/);
-      B = Y + 1.77200 * (U /*-0.5*/);
-
-      dst_f[0] = R;
-      dst_f[1] = G;
-      dst_f[2] = B;
-      dst_f[3] = src_f[3];
-
-      dst_f += 4;
-      src_f += 4;
-    }
-  return samples;
-}
-
-
-
-static INLINE long
-conv_rgbF_yuvF (unsigned char *src, unsigned char *dst, long samples)
-{
-  float *src_f = (float *) src;
-  float *dst_f = (float *) dst;
-  long   n     = samples;
-
-  while (n--)
-    {
-      float R, G, B;
-      float Y, U, V;
-
-      R = src_f[0];
-      G = src_f[1];
-      B = src_f[2];
-
-      Y = 0.299 * R + 0.587 * B + 0.114 * B;
-      U = (-0.1687) * R - 0.3313 * G + 0.5 * B /* +0.5 */;
-      V = 0.5 * R - 0.4187 * G - 0.0813 * B /* +0.5 */;
-
-      dst_f[0] = Y;
-      dst_f[1] = U;
-      dst_f[2] = V;
-
-      dst_f += 3;
-      src_f += 3;
-    }
-  return samples;
-}
-
-static INLINE long
-conv_yuvF_rgbF (unsigned char *src, unsigned char *dst, long samples)
-{
-  float *src_f = (float *) src;
-  float *dst_f = (float *) dst;
-  long   n     = samples;
-
-  while (n--)
-    {
-      float Y, U, V;
-      float R, G, B;
-
-      Y = src_f[0];
-      U = src_f[1];
-      V = src_f[2];
-
-      R = Y + 1.40200 * (V /*-0.5*/);
-      G = Y - 0.34414 * (U /*-0.5*/) -0.71414 * (V /*-0.5*/);
-      B = Y + 1.77200 * (U /*-0.5*/);
-
-      dst_f[0] = R;
-      dst_f[1] = G;
-      dst_f[2] = B;
-
-      dst_f += 3;
-      src_f += 3;
-    }
-  return samples;
-}
-
-
 /******* lab, xyz and rgb interaction, lifted from cpercep by adam d. moss */
 
 /*
@@ -1924,35 +1688,6 @@ init (void)
     babl_type ("u8"),
     babl_component ("Y"),
     NULL);
-  const Babl *yuv8 = babl_format_new (
-    "name", "Y'CbCr u8",
-    "planar",
-    babl_model ("Y'CbCr"),
-    babl_type ("u8-luma"),
-    babl_sampling (1, 1),
-    babl_component ("Y'"),
-    babl_type ("u8-chroma"),
-    babl_sampling (2, 2),
-    babl_component ("Cb"),
-    babl_component ("Cr"),
-    NULL);
-  const Babl *yuvF = babl_format_new (
-    babl_model ("Y'CbCr"),
-    babl_type ("float"),
-    babl_component ("Y'"),
-    babl_type ("float"),
-    babl_component ("Cb"),
-    babl_component ("Cr"),
-    NULL);
-  const Babl *yuvaF = babl_format_new (
-    babl_model ("Y'CbCrA"),
-    babl_type ("float"),
-    babl_component ("Y'"),
-    babl_type ("float"),
-    babl_component ("Cb"),
-    babl_component ("Cr"),
-    babl_component ("A"),
-    NULL);
 
 #define o(src, dst) \
   babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
@@ -1993,11 +1728,6 @@ init (void)
   o (g16, g8);
   o (rgbaF, rgbAF);
   o (rgbAF, rgbaF);
-  o (yuv8, rgb8);
-  o (rgb8, yuv8);
-  o (yuvF, rgbF);
-  o (rgbF, yuvF);
-  o (yuvaF, rgbaF);
   o (rgbA8, rgbA16);
   o (rgb8, rgb16);
   o (ga8, ga16);
@@ -2020,9 +1750,7 @@ init (void)
   o (gaF, gAF);
   o (gAF, gaF);
   o (rgbaF, rgbF);
-  o (rgbAF, rgbF);
   o (gaF, gF);
-  o (gAF, gF);
   o (rgbF, rgbaF);
   o (rgbF, rgbAF);
   o (gF, gaF);
@@ -2034,29 +1762,18 @@ init (void)
   o (rgbAF, gAF);
   o (gAF, rgbAF);
   o (rgbaF, rgb8);
-  o (rgbA8, rgbaF);
   o (rgbA8, rgbAF);
   o (ga8, gaF);
   o (gA8, gAF);
   o (rgbA8, rgba8);
   o (rgba8, rgbA8);
-  o (rgbA16, rgba16);
   o (gAF, rgbAF);
   o (rgbaF, g8);
   o (rgbaF, rgb16);
   o (rgb8, rgba8);
   o (rgb8, rgbA8);
-  o (rgbA8, rgb8);
   o (rgba8, rgb8);
   o (rgbaF, rgbA8);
-  o (rgbaF, rgbA16);
-  o (rgbA16, rgbaF);
-  o (yuv8, rgb8);
-  o (rgb8, yuv8);
-  o (yuvF, rgbF);
-  o (rgbF, yuvF);
-  o (yuvaF, rgbaF);
-  o (rgbaF, yuvaF);
 #if 0
   o (rgbF, xyzF);
   o (xyzF, rgbF);
index 16d3276fc82198485eb38e131dad39a5a4171018..6a007c6dca69ef6a29dfd87ab2b28ed08fa52051 100644 (file)
@@ -610,9 +610,10 @@ conv_rgbAF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
         }
       else
         {
+          float alpha_recip = 1.0 / alpha;
           for (c = 0; c < 3; c++)
             {
-              *(float *) dst = ((*(float *) src) / alpha);
+              *(float *) dst = ((*(float *) src) * alpha_recip);
               dst           += 4;
               src           += 4;
             }
index 83fa240575a6cf23489482c19cae82abc75031ae..b44bb5e80241bc2d3bc365861fd11bf5a8c69d13 100644 (file)
@@ -163,6 +163,10 @@ conv_rgbaF_linear_rgba8_linear (unsigned char *src,
   return samples;
 }
 
+#define conv_rgbaF_gamma_rgba8_gamma conv_rgbaF_linear_rgba8_linear
+#define conv_rgbaF_gamma_rgb8_gamma conv_rgbaF_linear_rgb8_linear
+
+
 #endif
 
 #define o(src, dst) \
@@ -199,11 +203,37 @@ init (void)
     babl_component ("B"),
     NULL);
 
+  const Babl *rgbaF_gamma = babl_format_new (
+    babl_model ("R'G'B'A"),
+    babl_type ("float"),
+    babl_component ("R'"),
+    babl_component ("G'"),
+    babl_component ("B'"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgba8_gamma = babl_format_new (
+    babl_model ("R'G'B'A"),
+    babl_type ("u8"),
+    babl_component ("R'"),
+    babl_component ("G'"),
+    babl_component ("B'"),
+    babl_component ("A"),
+    NULL);
+  const Babl *rgb8_gamma = babl_format_new (
+    babl_model ("R'G'B'"),
+    babl_type ("u8"),
+    babl_component ("R'"),
+    babl_component ("G'"),
+    babl_component ("B'"),
+    NULL);
+
   if ((babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_MMX) &&
       (babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE))
     {
       o (rgbaF_linear, rgb8_linear);
       o (rgbaF_linear, rgba8_linear);
+      o (rgbaF_gamma, rgb8_gamma);
+      o (rgbaF_gamma, rgba8_gamma);
     }
 
 #endif